Установка размера содержимого моего UIScrollView в viewDidLoad / viewWillAppear не имеет никакого эффекта - почему? - PullRequest
4 голосов
/ 18 августа 2011

Я пытаюсь изменить размер содержимого моего UIScrollVIew, когда загружается контейнер.Я нахожу это намного сложнее, чем я себе представляю.Я попытался установить размер содержимого в viewDidLoad и viewWillAppear, например, так:

-(void)viewWillAppear:(BOOL)animated
{    
    CGSize newContentSize = CGSizeMake(scrollView.contentSize.width, scrollView.frame.size.height + 80.0);
    [scrollView setContentSize:newContentSize];    
}

Если я ставлю точку останова сразу после вызова setContentSize, я вижу, что новый контентразмер - это то, что я ему установил.

Однако, если я затем проверю размер контента в некотором произвольном месте после viewWillAppear, например, скажем, scrollViewDidScroll, размер контента вернется обратно кразмер "фактического" содержимого в представлении прокрутки, а не размер, который я пытался заставить его указать в viewDidAppear.

Почему это так?

Ответы [ 2 ]

8 голосов
/ 18 августа 2011

Понятия не имею, что сбрасывает его на вас, но я могу помочь вам найти ответ.

В такой ситуации я обычно делаю подкласс UIScrollView (обычно как «XXXUIScrollView»), переопределяю setContentSize: (просто вызвать [super setContentSize:size], может быть, с помощью NSLog) и устанавливаю точку останова в переопределенном методе на посмотрим, что устанавливает значение.

0 голосов
/ 14 ноября 2012

У меня возникла точно такая же проблема, и единственный обходной путь, который я нашел до сих пор, - это выполнить executeSelector: withObject: afterDelay - установить свойство contentSize после некоторой небольшой задержки: UIScrollView не будет прокручиваться, даже если я установлю размер содержимого

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