我正在使用 Xcode 6,Beta 5。Swift 语言。
我的代码有带 TableView 和自定义 TableView 单元格的 View Controller 。 tableCell 中有 3 个标签和一个 imageview。
问题是:只出现了一半的单元格。 它看起来像这样:
http://i.stack.imgur.com/JO4A4.png
http://i.stack.imgur.com/Ku5Og.png
这是我发现的一些有趣的东西。 在 XCode 5 之前, Storyboard中的 TableView 和 View Controller 的默认大小为 320x568。
现在使用 Xcode 6、Beta 5, Storyboard中的 TableView 和 View Controller 似乎默认大小为 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!
}
最佳答案
Xcode 6 中新的通用 iOS8 模板带有 Size Classes。您可以在 Interface Builder 中更改此默认设置:转到 File Inspector 并取消选中“Use size classes”。然后,您将能够在一个 Storyboard 中使用 iPhone 大小的 View Controller 场景(例如 320x568),并在另一个 Storyboard 中使用 iPad 大小的 View Controller 场景。但是,除非您有充分的理由,否则我不鼓励您这样做。
Size Classes(与他们最好的 friend Auto layout 一起工作)有很多优势。其中之一是您可以在一个独特的 Storyboard 的相同 View Controller 场景中,定义约束(或字体或 subview ),例如仅在纵向模式(紧凑宽度/常规高度)和其他模式下为 iPhone 设置约束(或字体或 subview )仅在横向模式(常规宽度/任何高度)下为 iPad 设置。
因此,您提到的 600x600 大小的 View Controller 场景并不对应于任何特定设备,但允许您提供适合任何屏幕宽度和屏幕高度的约束。您可以通过 WWDC 2014 video Session 411 "What's new in Interface Builder" 了解更多关于尺寸等级的信息(从 30 分钟开始)。
因此,为了回答您的问题:我认为您应该在项目中保留 Size Classes 并对其使用自动布局。然后,您应该检查您的 tableView 约束和单元格的 contentView subview 约束。
关于ios - 在 Xcode_6 beta 5 中只有部分 tableview 单元格内容可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25352103/