В бета-версии Xcode_6 видно только частичное содержимое ячейки таблицы
Я использую Xcode 6, Beta 5. Язык Swift.
Мой код имеет viewcontroller с табличным представлением и настраиваемую ячейку табличного представления. В таблице Cell есть 3 метки и изображение.
Проблема в том, что появляется только половина клетки. Это выглядит так:
Вот кое-что интересное я нашел. Вплоть до XCode 5 табличные представления и контроллеры представления имели размер по умолчанию 320x568 в раскадровке.
Теперь с Xcode 6, Beta 5 табличные представления и контроллеры представления по умолчанию имеют размер 600x600 в раскадровке
Может ли это быть с моим макетом?
Мой код, как показано ниже:
//OrderHistoryDetailViewController
class OrderHistoryDetailViewController: ViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var orderPlacedLabel: UILabel!
@IBOutlet weak var orderItemsTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
}
//MARK: UITableViewDataSource methods
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return 2
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
var orderDetailCell: OrderHistoryDetailCell = tableView.dequeueReusableCellWithIdentifier("OrderDetailCell") as OrderHistoryDetailCell
orderDetailCell.priceLabel.text = "$34.89"
orderDetailCell.quantityOrderedLabel.text = "QTY:1|$34.89 each"
orderDetailCell.itemOrderedNameLabel.text = "Tooled Leather Laptop Cover"
orderDetailCell.thumbNailImageView.image = UIImage(named: "laptopCover.png")
return orderDetailCell
}
}
//OrderHistoryDetailCell
class OrderHistoryDetailCell: UITableViewCell {
@IBOutlet weak var thumbNailImageView: UIImageView!
@IBOutlet weak var itemOrderedNameLabel: UILabel!
@IBOutlet weak var quantityOrderedLabel: UILabel!
@IBOutlet weak var priceLabel: UILabel!
}
1 ответ
Новые универсальные шаблоны iOS8 в Xcode 6 поставляются с классами размеров. Вы можете изменить эту настройку по умолчанию в Интерфейсном Разработчике: перейдите к Инспектору Файлов и снимите флажок "Использовать классы размера". После этого вы сможете работать со сценами контроллера размера iPhone (например, 320x568) в одном раскадровке, а со сценами контроллера размера iPad - в другом раскадровке. Однако, если у вас нет веских причин, я не рекомендую вам делать это.
Классы размера (работа со своим лучшим другом Auto layout) имеют много преимуществ. Одним из них является тот факт, что вы можете в той же сцене контроллера представления уникальной раскадровки определить ограничения (или шрифты или подвиды), которые, например, будут установлены только для iPhone в портретном режиме (компактная ширина / обычная высота) и другие. ограничения (или шрифты или подпредставления), которые будут установлены только для iPad в альбомном режиме (обычная ширина / любая высота).
Следовательно, упомянутая вами сцена контроллера вида размером 600x600 не соответствует какому-либо конкретному устройству, но позволяет вам устанавливать ограничения, которые будут соответствовать любой ширине экрана и любой высоте экрана. Вы можете больше узнать о классах размеров с помощью видео-сессии WWDC 2014 411 "Что нового в Интерфейсном Разработчике" (начинается через 30 минут).
Итак, чтобы ответить на ваш вопрос: я думаю, что вы должны сохранить классы размера в своем проекте и использовать с ним автоматическую разметку. Затем вы должны проверить ограничения tableView и ограничения subViews для contentView вашей ячейки.