【问题标题】:iOS UITableView Custom RowHeighttiOS UITableView 自定义 RowHeightt
【发布时间】:2015-08-27 11:40:48
【问题描述】:

我在 Xcode 7 上使用 Swift 2 我有一个带有 containerView 的 ViewController。 containerView 调用具有 tableView 的 childViewController。在 tableView 中,我放置了一个行高为 60 pts 的自定义 tableViewCell。

问题:在运行模式下:当 tableView 在容器中显示为 parentcontroller 的一部分时 -- 行高不会保持 60 pts。它变成了一些任意的高度。这个新的任意高度与容器的大小无关。即使我使容器变小/变大,新的高度仍然存在。我希望它是我在 childViewController 中指定的自定义高度

下面是我添加 childViewController 和设置自动布局的代码

 func addController(controller: UIViewController)
{
    addChildViewController(controller)
    containerView.addSubview(controller.view)
    controller.view.translatesAutoresizingMaskIntoConstraints = false

    //Layouting within view controller
    var constraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|[view]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view" : controller.view])
    constraints += NSLayoutConstraint.constraintsWithVisualFormat("V:|[view]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view" : controller.view])
    NSLayoutConstraint.activateConstraints(constraints)
    didMoveToParentViewController(controller)
    currentController = controller
}

【问题讨论】:

    标签: ios swift autolayout tableview containers


    【解决方案1】:

    1.) 您是否使用自定义单元格 .xib?如果是,请确保在 .xib 文件中设置了它的 height 属性

    2.) 在您的故事板文件中,检查当您单击 TableView 的 Prototype 单元格时,您的高度是否已设置:

    3.) 在您的 tableviewcontroller 中,您是否指定了高度?:

        override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
            return 72
        }
    

    将 72 全部替换为您想要的,它应该会更新,除非您有其他事情发生! :)

    【讨论】:

    • 添加功能有效。我已将行高放在属性检查器中,但由于某种原因这还不够。任何情况..谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 2016-12-03
    相关资源
    最近更新 更多