2013-04-22 4 views
2

Я пытаюсь разместить subview (buttView) в нижнем правом углу на главном экране (от кода, а не от IB).Как определить координаты правого нижнего угла iPad в ландшафтном режиме?

Следующий код работает

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]; 

Но я запутаться, потому что, согласно сообщению журнала, нижней = 1004,0 и слева = 768,0, и IPad в ландшафтный режим! (ширина должна быть больше, чем высота! ??)

Кроме того, если я выключить «AUTORESIZE подвиды» в IB, то код будет работать только тогда, когда я поменять bottomleft и (но не работает отлично, потому что истинная ширина равна 1024, а не 1004).

Мой вопрос: есть ли элегантный способ определения местоположения нижнего правого угла вида при просмотре в ландшафтном режиме?

+0

+1 для хорошо сформированного сообщения, которое содержит код, то, что вы пробовали, и конкретный ответный вопрос. –

ответ

2

Если вы посмотрите на эти значения в viewWillLayoutSubviews и используете границы вместо кадра, вы получите правильные значения, и они будут обновлены, если вы повернете устройство.

Смежные вопросы