Размер / положение UIView не работает на iPad, как на iPhone - PullRequest
1 голос
/ 02 ноября 2011

У меня есть UIView размера width = 320px height = 40px, которое я хочу отобразить внизу в виде панели вкладок.

Я использую следующий код для этого, и он отлично работает на iPhone,Но когда я пробую симулятор iPad, вид не появляется нигде на экране.

buttonsView.frame=CGRectMake(
                                0,
                                self.view.frame.size.height - buttonsView.frame.size.height,
                                self.view.frame.size.width,
                                buttonsView.frame.size.height );

Это растягивает вид на ширину экрана, но сохраняет его первоначальную высоту.

КакМогу ли я сделать это шоу прямо на моем iPad?

[ОБНОВЛЕНИЕ]

Это происходит в моем viewDidLoad.

У меня есть этот NSLog сейчас:

NSLog(@"buttonsView Width: \t%g\t%g\tHeight:\t%g\t%g",self.view.frame.size.width, buttonsView.frame.size.width, self.view.frame.size.height, buttonsView.frame.size.height);

С выводом:
iPhone:

кнопки Просмотр Ширина: 320 320 Высота: 460 40

iPad:

buttonView Ширина: 768 768 Высота: 1004 40

Я также создаю другой вид, подобный этому, для верхней части страницы, которая работаетштраф:

dataView.frame=CGRectMake(
                             0,
                             0,
                             self.view.frame.size.width,
                             dataView.frame.size.height);

Ответы [ 2 ]

3 голосов
/ 02 ноября 2011

Вы смотрели (используя точки останова или NSLog) значения, которые вы вводите в вызов CGRectMake, просто как своего рода «проверка работоспособности»?


Спасибо за информацию. Моя следующая мысль состоит в том, что между viewDidLoad и viewWillAppear что-то меняется в ОС. Возможно, попробуйте переместить код в viewWillAppear, чтобы гарантировать, что кадры, с которыми вы работаете, будут кадрами, которые будут отображаться. Этот ответ переполнения стека объясняет это немного глубже.

1 голос
/ 03 ноября 2011

Это произошло потому, что Auto Resizing был установлен для UIView.

Чтобы исправить, установите Auto Resizing, чтобы привязать его к верхнему левому углу. Таким образом, всякий раз, когда вы меняете кадр, он относится к верхнему левому пикселю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...