2013-09-15 3 views
1

Я полный новичок на объективе C и каким-то образом сумел взломать свой путь с помощью своего первого приложения. Ну, почти.Изменение размеров объектов для разных разрешений

Я построил свое приложение 4inch/retina и теперь делаю его обратно совместимым с 3.5. Я провел пару часов, возившись с ограничениями и не мог заставить его работать. Мой вопрос - возможно ли изменить параметры объекта в соответствии с разрешением телефона с кодом? Что-то вроде ...

if(3.5 inch screen){ 
object.height= 250px; 
object.x= 250px; 
object.y= 250px; 
}else{ 
object.height= 350px; 
object.x= 250px; 
object.y= 250px; 
} 

Спасибо за любую помощь.

Bleh

ответ

1

Это то, что я использую

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 

int screen_h = self.view.frame.size.height; 
int screen_w = self.view.frame.size.width; 

if (screenBounds.size.height == 568) { 
    // code for 4-inch screen 
} 
else { 
    // code for 3.5-inch screen 
} 
+0

Smick будет ли это жить в viewDidLoad? – andehlu

+0

Да, это не изменится, если вы переходите в/из просто нужно сделать один раз, когда он загружается. – DogCoffee

+0

Это именно то, что мне нужно. Спасибо Smick. – andehlu

0

Это неправильно. Вы не должны изменять высоту в зависимости от размера экрана.

Вместо этого установите фиксированные поля сверху и снизу и сделайте переменную высоту.

+0

Спасибо Eimantas. Не могли бы вы объяснить, как это делается немного лучше? Извиняюсь, я нооб. – andehlu

+0

Поскольку вы делаете это в раскадровке, отрегулируйте ограничения макета или маску авторазмера для UIImageView. – Eimantas

+0

В зависимости от вашего приложения, это может иметь смысл иметь разные высоты в зависимости от размера экрана. Не все приложения так же просты, как «больше высоты - больше места для одного поля» - и одна из причин, по которой приложения iOS выглядят так замечательно, как и другие, заключается в том, что их графики сделаны именно для определенных размеров экрана. Поэтому наличие некоторого кода в зависимости от высоты экрана, например Smick, в его ответе не может быть просто помечено как «неправильное», это зависит от экрана. – TheEye

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