2014-12-27 3 views
3

В приложении «Сообщения Apple» на iOS iPhone 6 Plus отображает контактные изображения слева от имен и предварительных сообщений, которые он не делает ни на одном из другие устройства.Создайте iPhone с шестью плюсовыми элементами интерфейса (желательно с автозапуском)

enter image description here

мне было просто интересно, есть ли способ сделать это, желательно с Autolayout? Я в основном смущен, потому что, выбирая размер макета, он говорит в нижней части компактной ширины и любой высоты, что это для 3,5 ", 4" и 4.7 "iPhone, без упоминания о 5,5" iPhone 6 Plus.

enter image description here

Если я полностью ложному дерева здесь и нет абсолютно никакого способа сделать это с Autolayout, что опрятный способ сделать это иначе?

Заранее благодарим вас за помощь и извинения, если это похоже на дубликат чего-либо; Я давно искал и не нашел ничего, что бы правильно отвечало на мой вопрос.

+0

У меня такая же проблема и вы ожидаете ответа –

ответ

1

Я предполагаю, что они проверяют ширину экрана, и это фактически основано на опыте. На жестком телефоне вы можете вручную изменить разрешение/масштаб, и все, что даже немного выше, чем собственное 6-кратное разрешение (это было на iPhone 6), добавленное в функции 6+. Таким образом, хотя вы все еще можете использовать автоматическую компоновку для выкладки дополнительных вещей, вы должны проверить ширину UIWindow, чтобы увидеть, следует ли устанавливать эти элементы.

Редактировать: Я не пробовал это, но вы могли бы использовать дополнительные опции для этого. то есть (псевдо-код):

var contactIcon: UIImageView? 

// in viewDidLoad or something 
if screen.width > 475 { 
    contactIcon = UIImageView(named: "contactphoto.png") 
} 

// in the layout code: 
contactIcon?.autoSetDimensions(size) 
// etc. 
1

Я не могу ответить, как достигнуть этого в IB, но как это сделать в коде: Согласно документации, [[UIDevice currentDevice] platform] возвращает строку, идентифицирующую точную модельную версию iPhone который работает, например iPhone 5S, iPhone 6 плюс и т.д.

Вы можете проверить код для устройства, как это:

NSString *platform = [self platform]; 
if ([platform hasPrefix:@"iPhone7,1"]) { 
     //iPhone 6Plus 
} 
else { 
     //other devices 
} 

Я соединил все IOS устройств с перечислениями в категории:

UIDevice+BHRExtensions.h, UIDevice+BHRExtensions.m

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

  • Нет связанных вопросов^_^