UIScrollView.size = view.size - allAdditionalBars.size (например, TabBar или NavigationBar) программно - PullRequest
2 голосов
/ 03 августа 2011

UIScrollView устанавливается программно, не публикуйте ответы с использованием файла .xib.

Мой UIScrollView находится в моем классе модели, поэтому я хочу, чтобы код можно было легко импортировать в другой проект, например. для iPad или с вращающимся экраном.

У меня есть вид:

self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width;, self.view.frame.size.height;)];

И мой UIScrollView. Я хочу установить его размер, чтобы он покрывал весь экран, не считая всех баров, которые будут у моего класса контроллера. Но я не знаю как;)

Я думаю о вычитании self.view.frame.size.height - self.navigationController.navigationBar.frame.height и self.tabBarController.tabBar.height, если каждый существует.

Есть ли метод, который автоматически устанавливает размер UIScrollView ..?

Заранее спасибо!

1 Ответ

1 голос
/ 03 августа 2011

В вашем подклассе UIViewController вам не нужно беспокоиться о размере любого UINavigationController или UITabBarController chrome. Эти контроллеры автоматически изменят размер основного вида вашего контроллера в соответствии с соответствующей областью содержимого.

Если я сам создаю UIView в контроллере loadView, я обычно просто первоначально измеряю его как [[UIScreen mainScreen] applicationFrame]. Если бы я добавил UIScrollView в качестве подпредставления, которое бы заполняло всю область основного представления (а не просто использовал UIScrollView непосредственно в качестве основного представления), я бы использовал self.view.bounds в качестве фрейма и обязательно установил autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;.

...