Так как я очень новичок в программировании на ios, у меня больше вопросов общего дизайна. У меня есть ViewController, который содержит GraphView (UIScrollView + UIView), который отлично работает. Когда я поворачиваюсь к пейзажу, я хочу, чтобы GraphView изменял его высоту до высоты дисплея (так что он заполняет весь экран), но только 300 точек в портрете.Лучший способ изменения размера UIView при повороте в ландшафт и обратно
То, что я сделал до сих пор реализует viewWillLayoutSubviews
в ViewController и сбрасывают ограничения:
- (void)viewWillLayoutSubviews{
_graphViewHeightConstraint.constant = ([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait) ? 300:[[UIScreen mainScreen] bounds].size.height-self.navigationController.navigationBar.frame.size.height - 2*_distanceToTopView.constant;
}
и в GraphView.m:
- (void)layoutSubviews{
kGraphHeight = self.frame.size.height;
[self setNeedsDisplay];
}
(потому что мне нужна переменная kGraphHeight в коде для рисования графика). Это не похоже на очень элегантное решение, поэтому я хотел спросить, какой будет лучший способ? Большое спасибо за ваши входы :)