如何在基本样式表视图单元格中添加约束

Posted

技术标签:

【中文标题】如何在基本样式表视图单元格中添加约束【英文标题】:How to add constraints in Basic Style TableView cell 【发布时间】:2017-08-23 23:08:16 【问题描述】:

我尝试为添加到 UITableView 中基本样式单元格的标签添加约束,但它们未激活。

我使用 Basic Style 而不是 Custom,因为我需要一些行从 Title 开始,另一行从 cell.ImageView!.image

如果我使用自定义单元格,当没有 ImageView 时,标题无论如何都位于远离行左侧的位置。

截图:

【问题讨论】:

,您应该向我们展示您尝试了什么以及它是如何失败的。我建议你看this 视频,也可以看this。您还可以搜索更多“如何以编程方式创建 tableViewcell 我失败了,因为我找不到任何现有邻居对象条件的约束,因为基本样式单元约束没有激活,我不知道为什么。 【参考方案1】:

使用完全自定义的单元格。甚至不要打扰预定义的。自己构建它,您不必担心任何事情,您可以根据需要使用约束(只需确保这些与单元格的内容视图相关,而不是任何其他视图 - UITableViewCell 有很多)。

【讨论】:

感谢您的回答,但如果没有 ImageView,我不知道哪个约束会使标题移到行的左侧。我试图用前导空格将标题粘贴到图像视图,但没有处理。【参考方案2】:

我在 Apple 文档中找到了答案: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html

这段代码正在运行:

import UIKit

class ViewController: UITableViewController 


override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


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


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return 4


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: "ChecklistItem", for: indexPath)

    let label = cell.viewWithTag(1000) as! UILabel
    let image = cell.viewWithTag(1001) as! UIImageView
    let margins = cell.contentView.layoutMarginsGuide

    if indexPath.row == 0 
        label.text = "First row"
     else if indexPath.row == 1 
        label.text = "Second row"
        image.image = UIImage(named: "test")
     else if indexPath.row == 2 
        label.text = "Third row"
        label.leadingAnchor.constraint(equalTo: margins.leadingAnchor).isActive = true

     else if indexPath.row == 3 
        label.text = "Fourth row"
    
    return cell
    

Screenshot

【讨论】:

以上是关于如何在基本样式表视图单元格中添加约束的主要内容,如果未能解决你的问题,请参考以下文章

在单元格中添加和修改多个约束?

如何在 collectionView 单元格中添加可滚动视图

iOS:如何在代码中的表格单元格中为文本字段添加约束

TextView的自动高度,在tableView的单元格中使用autolayout

如何在设备旋转后重新计算约束

故事板自动布局将视图放置在表格单元格中,并将尾随到超级视图约束固定到最左侧