我会在tableView上设置UITableViewDelegate,但如果我这样做,行高会改变: 第1张照片没有代表团;第2次委托(顺便说一下,缺少服务1是正确的)
行高代码:
internal func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if cellSubTitle.count == 0 {
return 70
} else {
if cellSubTitle[indexPath.row] == "" {
return 70
} else {
return 88
}
}
}
和tableView:
private lazy var tableView: StandardTV = {
let tv = StandardTV()
tv.translatesAutoresizingMaskIntoConstraints = false
tv.headerType = .none
tv.cellTitle = ["Service 2", "Service 3", "Service 4", "Service 5", "Service 6", "Service 7"]
// tv.delegate = self
return tv
}()
我希望有人可以帮助我:)。
修改
rowForHeight-Code是TableView-Class(“StandardTV”)的一部分。这个类有自己的委托。
class StandardTV: UITableView, UITableViewDelegate, UITableViewDataSource {
override init(frame: CGRect, style: UITableViewStyle) {
super.init(frame: CGRect.zero, style: .grouped)
delegate = self
dataSource = self
backgroundColor = .white
translatesAutoresizingMaskIntoConstraints = false
separatorStyle = .none
showsVerticalScrollIndicator = false
self.register(StandardTVCell.self, forCellReuseIdentifier: reuseIdentifier)
}
....
}
第二个代码片段来自视图控制器,我插入tableView。
答案 0 :(得分:0)
感谢@maddy和@Swift Rabbit的提示我得到了一个答案:是的,cource会影响委托行高:) 我已经为tableView实现了两次委托方法。一个在我的" StandardTV" -class和第二个在viewController上。因此,我认为我的" StandardTV" -class的第一个代表将被忽略,因此行高。
btw:我在不同的viewController中使用这些" StandardTV" -class并希望保持相同的行高。