Как я могу удалить только скроллвью? - PullRequest
0 голосов
/ 24 августа 2010

У меня есть viewcontroller, для которого установлен делегат scrollview (scrollview является подпредставлением viewcontroller), когда я помещаю [scrollview removeFromSuperview]; и viewcontroller, и scrollview удаляются, и у меня остается пустое окно.

Как мне удалить только скроллвью?

редактировать ::::

это часть моего viewcontroller .h

@interface QuartzViewController : UIViewController <UIScrollViewDelegate> {

это часть моего viewcontroller .m

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
UIInterfaceOrientation o = self.interfaceOrientation;
if ((o == UIInterfaceOrientationPortrait) || (o == UIInterfaceOrientationPortraitUpsideDown))   {D = 1;pagingScrollView.delegate = nil;[pagingScrollView removeFromSuperview];[self resurrectPaging];}
if ((o == UIInterfaceOrientationLandscapeLeft) || (o == UIInterfaceOrientationLandscapeRight))  {D = 2;pagingScrollView.delegate = nil;[pagingScrollView removeFromSuperview];[self resurrectPaging];}}

-(void)resurrectPaging { 
CGRect F;
F = [self frameForPagingScrollView];
pagingScrollView = [[UIScrollView alloc] initWithFrame:F];
[SELF addSubview:pagingScrollView];
[self setPaging];}

- (void)viewDidLoad {
[self.view addSubview:SELF];
D = 1;
CGRect F;
F = [self frameForPagingScrollView];
pagingScrollView = [[UIScrollView alloc] initWithFrame:F];
[self setPaging];}



- (void)setPaging {
if (D == 1) {
    CGRect F;
    F = [self frameForPagingScrollView];
    pagingScrollView.pagingEnabled = YES;
    pagingScrollView.backgroundColor = [UIColor whiteColor];
    pagingScrollView.showsVerticalScrollIndicator = NO;
    pagingScrollView.showsHorizontalScrollIndicator = NO;
    pagingScrollView.contentSize = CGSizeMake(F.size.width * [self pdfPageCount], F.size.height);
    pagingScrollView.delegate = self;
    pagingScrollView.clipsToBounds = YES;
    pagingScrollView.bounces = YES;
    self.view = pagingScrollView;
    recycledPages = [[NSMutableSet alloc] init];
    visiblePages  = [[NSMutableSet alloc] init];
    [self tilePages];
    [pagingScrollView addSubview:self.isvP];}
else if (D == 2) {
    CGRect F;
    F = [self frameForPagingScrollView];
    pagingScrollView.pagingEnabled = YES;
    pagingScrollView.backgroundColor = [UIColor redColor];
    pagingScrollView.showsVerticalScrollIndicator = NO;
    pagingScrollView.showsHorizontalScrollIndicator = NO;
    pagingScrollView.contentSize = CGSizeMake(F.size.width * [self pdfPageCount], F.size.height);
    pagingScrollView.delegate = self;
    pagingScrollView.clipsToBounds = YES;
    pagingScrollView.bounces = YES;
    self.view = pagingScrollView;
    recycledPages = [[NSMutableSet alloc] init];
    visiblePages  = [[NSMutableSet alloc] init];
    [self tilePages];
    [pagingScrollView addSubview:self.isvL];}}

По сути, причина того, что я хочу удалить, затем снова добавить свой вид прокрутки, заключается в том, что когда ориентация устройства меняется на альбомную, мое подпредставление ландшафта находится в неправильном месте (x, y).

но скажите, что если я начинаю в пейзаже, isvL находится в правильном месте, поэтому я знаю, что я правильно понял код. собираюсь установить винты в позиции x, y isvL в моем pagingScrollView!

1 Ответ

0 голосов
/ 24 августа 2010

По сути, причина того, что я хочу удалить, затем снова добавляю мой вид прокрутки, заключается в том, что когда ориентация устройства меняется на альбомную, мое подпредставление ландшафта находится в неправильном месте (x, y).Если у вас возникли проблемы с позиционированием вида прокрутки, попробуйте правильно установить маски автоматического изменения размера или вручную отрегулировать рамку.Нет смысла каждый раз удалять и воссоздавать представление прокрутки.

Кроме того, в указанном вами коде у вас возникает утечка из представления прокрутки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...