ios - 在 Xcode_6 beta 5 中只有部分 tableview 单元格内容可见

标签 ios uitableview swift xcode6-beta5

我正在使用 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/

相关文章:

ios - 如何将当前单元格的数据与其在 TableView Swift 4 中的前一个单元格进行比较?

ios - SpriteKit 自定义节点边界

ios - UIButton 句柄触摸然后通过?

ios - 如何使用 NSDictionary 中的数据更改 UITableView 中单元格的文本

uitableview - 在 tableView 单元格中添加按钮

IOS 图表突出显示 X 轴上的特定标签和仅在中间的虚线网格线

ios - 当应用程序被杀死时处理推送通知响应(应用程序未运行)

ios - 方法中返回 Json 对象,无法将 NSDictionary 转换为 Void

iPhone - iPhone5 对现有应用程序的支持?

iphone - 为 ipod touch 4g 开发