Как определить координаты нижнего правого угла iPad в альбомном режиме?
Я пытаюсь разместить подпредставление (buttView
) в правом нижнем углу главного окна (из кода, а не из IB).
Следующий код работает
const float bottom = self.frame.size.height; const float left = self.frame.size.width; NSLog(@"bottom=%.1f left=%.1f", bottom, left); CGSize bz = buttView.frame.size; CGRect rc = CGRectMake(left-bz.width, bottom-bz.height, bz.width,bz.height); buttView.frame = rc; [self addSubview:buttView];
Но я запутался, потому что, согласно сообщению журнала, bottom = 1004.0 и left = 768.0, а iPad находится в ландшафтном режиме! (Ширина должна быть больше, чем высота!??)
Более того, если я отключу "autoresize subviews" в IB, то код будет работать, только если я поменяю местами bottom
а также left
(но он не работает идеально, потому что истинная ширина равна 1024, а не 1004).
У меня вопрос: есть ли элегантный способ определить местоположение нижнего правого угла вида, когда вид находится в ландшафтном режиме?
1 ответ
Если вы посмотрите на эти значения в viewWillLayoutSubviews и используете рамки вместо фрейма, вы получите правильные значения, и они будут обновлены, если вы поверните устройство.