两个标签在tableView单元格中垂直对齐自动调整swift大小

时间:2017-12-08 17:57:02

标签: ios uitableview autolayout

尝试自动调整两个标签在单元格内垂直对齐的尺寸,这可能吗?

storyboard中,我们必须设置autolayout,因为我想自动调整两个标签的大小(一个在另一个标签之上)。

我无法设置每个高度,因此故事板不知道这两个标签的高度是多少,因此它显示autolayout的错误。

enter image description here

如果单击“添加缺失约束”按钮,它将为“副标题”添加高度

或者我可以设置“标题”的高度而不是“副标题”,

或使“title”等于“subtitle”,它仍然会接受。

enter image description here

结果如下:

enter image description here

解决方法是将这两个单独分隔到不同的单元格。 更好的解决方案?或者我只是忘记做任何事情?

P.S。我正在使用Xcode 8和iOS 10.3。

1 个答案:

答案 0 :(得分:3)

尝试为两个标签设置正确的约束 - :

<强>故事板 - :

第一个label的约束 - :

enter image description here

第二个label的约束 - :

enter image description here

控制器类(使用table view的自动维度) - :

class ViewController1: UIViewController {

    var dataForTableView:[ProductImage]?

    @IBOutlet weak var secondTable: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        secondTable.estimatedRowHeight = 96
        secondTable.rowHeight = UITableViewAutomaticDimension
        // CHECK FOR DATA

        //print(dataForTableView?[0].url as Any)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

extension ViewController1 : UITableViewDelegate,UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
        return 1
    }


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell1") as! testingCell2
        cell.backgroundColor = UIColor.blue;
        cell.secondLabel.text = "agfhjsgfhjsgdshgfhjsfjhvhssajs hjfbvhjfbvjhfgafgfhlgkaghkfakfhkflbvhfbvhfvbhfv ah fvfhbvfjhvbfhdavhfvhv"
        return cell
    }

    // Number of sections in table

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }// Default is 1 if not implemented

    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat{
        return UITableViewAutomaticDimension
    }

}

<强>输出 - :

enter image description here

我希望这就是您所寻找的,如果有任何问题,请告诉我。谢谢