проблема с размером прокрутки контента на ipad в альбомной - PullRequest
1 голос
/ 10 ноября 2010

В viewdidload у меня есть этот код:

[methodPanes setContentSize:CGSizeMake(numberOfPages*methodPanes.frame.size.width, 100)];

Метод панели устанавливается относительно ширины self.view.

Проблема в том, что если я загружаю вид из альбомного формата на iPad и NSLog methodPanes.frame.size.width, я получаю 648 (что, очевидно, неправильно).

Затем у меня есть кнопка, которая, когда я нажимаю на нее, снова вызывает NSLogs methodPanes.frame.size.width, когда отображается вид. Это сейчас 924 (больше нравится).

Я предполагаю, что по какой-то причине представление прокрутки загружается с шириной 648, а затем автоматически изменяет размер до ширины представления (для UIViewAutoresizingF FlexibleWidth установлено правильное изменение размера при повороте ipad).

Моя проблема в том, что размер содержимого моего прокрутки метода methodPanes должен быть numberOfPages x its frame width, но в viewDidLoad он дает мне неправильный размер для ширины кадра метода methodPanes, что означает, что размер моего содержимого слишком мал, то есть весь мой контент не покажи.

Так ..... как я могу решить это? Есть ли функция, которая запускается после того, как ВСЕ компоненты пользовательского интерфейса были загружены и перестали перемещаться? Или я могу сохранить «check» на methodPanes, чтобы увидеть, изменяется ли его ширина, а затем соответственно изменить размер содержимого?

Спасибо

1 Ответ

4 голосов
/ 01 марта 2011

Получите ширину после запуска цикла выполнения.Размеры вида будут обновлены для ориентации к тому времени.Этого обычно достаточно:

- (void)adjustContentSize {
    [methodPanes setContentSize:CGSizeMake(numberOfPages*methodPanes.frame.size.width, 100)];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    [self performSelector:@selector(adjustContentSize) withObject:nil afterDelay:0.0];
}
...