2015-04-30 9 views
0

У меня есть пользовательский UITableViewCell с и .xib. В xib я установил ширину ячейки до 320.Пользовательские настройки ширины UITableViewCell

Я хочу разместить UIlabel внутри ячейки относительно ширины ячейки. Однако в коде во время выполнения Bounds.width ячейки всегда 320, как установлено в xib, а не фактическая ширина экрана/UITableView, который мне нужно правильно позиционировать UILabel.

Ширина должна быть разной для iphone 5, 6 и 6+, очевидно, по крайней мере во время работы, но она всегда установлена ​​на 320 на всех устройствах. Что мне не хватает?

Спасибо!

EDIT

Вот маленький кусочек кода.

var newFrame = _lblDetail.Frame; 
newFrame.X = Bounds.Width - 55; //get current width of cell, and subtract 55 and set that as the X value of the frame for the label 
_lblDetail.Frame = newFrame; //set new frame on label 
+0

ли вы проверяете ширину вида таблицы? Это также 320? Не могли бы вы добавить некоторые коды или соответствующие скриншоты? –

+0

Да, ширина таблицы также равна 320. Добавлен немного кода – Corstiaan

ответ

1

Табличный вид ячейки всегда имеет ширину 320, что таблица не отвечает на размер экрана. Что вам нужно сделать, так это проверить, правильно ли установлены ограничения автоматической компоновки представления таблицы (если вы используете автоматическую компоновку) или же кадр таблицы выглядит по-разному для каждого размера экрана.

+0

Это неверно, ширина ячейки таблицы будет соответствовать ширине окна, которое увеличивается для каждого устройства, до ширины 414 для iPhone 6+ http : //www.idev101.com/code/User_Interface/sizes.html –

0
Bounds.Width 

Будет 320 для iPhone 4S & 5, 375 для iPhone 6 и 414 для iPhone 6+.

Тот факт, что вы видите 320 в качестве ширины, заставляет меня поверить, что ваше приложение еще не поддерживает экраны с более высокой плотностью и будет масштабировать 320. Вы можете сказать, что строка состояния (время наверху) будет немного больше.

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

Вам нужно установить запуск изображений в следующих разрешениях:

[email protected] for iPhone 6; dimensions 750x1334 
[email protected] for iPhone 6 Plus; dimensions 1242x2208 
0

Try, чтобы получить ширину в layoutSubviews метода.

override func layoutSubviews() { 
    super.layoutSubviews() 

    NSLog("self.frame.size is %@", NSStringFromCGSize(self.frame.size)) 
} 

ниже мой выход

2015-07-21 10: 10: 34,942 MyApp [74669: 1208599] self.frame.size есть {768, 310}

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