如何在Swift 4中添加UITableViewCell对象的@IBOutlet?

时间:2018-12-07 12:03:34

标签: swift xcode uitableview

我尝试在@IBOutlethttps://i.imgur.com/MKWd0og.png中添加UITableViewCell中的Swift 4,因为我想以编程方式更改行高:https://i.imgur.com/LsEpawM.png但由于某种原因,我无法做到这一点。

我尝试将其添加到UIViewController快速文件中,但随后返回此错误:

  

从ShowIssue到TableViewCell的单元出口无效。   插座无法连接到重复内容。

我还尝试将其添加到UITableViewCell快速文件中(我将其用于添加单元格内部对象的出口),但不允许我进行连接。

我该如何工作?

提前谢谢!

2 个答案:

答案 0 :(得分:2)

您无法将IBOutlet或整个单元连接到UIViewController。但是您可以做的是将这些插座连接到UITableViewCell的子类。

因此,首先创建UITableViewCell

的子类
class YourCell: UITableViewCell {
}

然后在情节提要中不要忘记更改单元格的类别

enter image description here

现在您可以将IBOutlet连接到该子类

class YourCell: UITableViewCell {
    @IBOutlet weak var someView: UIView!
    ...
}

因此可以解决连接插座的问题。现在如何更改所有单元格的行高:

如果您需要更改UITableView中单元格的高度,可以在UIViewController中进行设置。但不是作为单个单元格的高度,而是作为UITableView

中的行高
yourTableView.rowHeight = 70

或者您可以使用自动布局,然后就不必设置rowHeight

答案 1 :(得分:1)

如果要以编程方式更改TableViewCell高度,则可以使用一个委托方法

  

func tableView(_ tableView:UITableView,            heightForRowAt indexPath:IndexPath)-> CGFloat

使用此方法返回您的自定义单元格高度

您需要在 View Controller 中覆盖它,并且不要忘记提供像这样的委托:

  

myTableView.delegate =自我