我正在使用Xcode 6,Beta 5. Swift语言。
我的代码具有带有tableview和自定义tableview单元格的viewcontroller。 tableCell中有3个标签和一个imageview。
问题是:只有一半的细胞出现。 它看起来像这样:
http://i.stack.imgur.com/JO4A4.png
http://i.stack.imgur.com/Ku5Og.png
这里有一些我发现的有趣的东西。 直到XCode 5,tableviews& viewcontrollers曾经是故事板中的默认大小320x568。
现在使用Xcode 6,Beta 5,tableviews& viewcontrollers似乎在故事板中默认大小为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!
}
答案 0 :(得分:1)
Xcode 6中的新通用iOS8模板附带了Size Classes。您可以在Interface Builder中更改此默认设置:转到文件检查器并取消选中"使用大小类"。然后,您将能够在一个Storyboard中使用iPhone大小的视图控制器场景(例如320x568),并在另一个Storyboard中使用iPad大小的视图控制器场景。但是,除非你有充分的理由,否则我不鼓励你这样做。
大小班级(与他们最好的朋友汽车布局合作)有很多优点。其中之一就是你可以在一个独特的故事板的相同视图控制器场景中定义约束(或字体或子视图),例如只能在纵向模式下设置iPhone(紧凑宽度/常规高度)和其他仅以横向模式(常规宽度/任何高度)为iPad设置的约束(或字体或子视图)。
因此,您提到的600x600大小的视图控制器场景与任何特定设备都不对应,但允许您提供适合任何屏幕宽度和任何屏幕高度的约束。您可以使用WWDC 2014 video Session 411 "What's new in Interface Builder"(从30分钟开始)更多地了解大小类。
因此,为了回答您的问题:我认为您应该在项目中保留大小类并使用自动布局。然后,您应该检查tableView约束和单元格的contentView子视图约束。