UITableViewDelegate是否影响tableViews行高?

时间:2018-06-13 16:00:28

标签: ios swift

我会在tableView上设置UITableViewDelegate,但如果我这样做,行高会改变: 第1张照片没有代表团;第2次委托(顺便说一下,缺少服务1是正确的)

without delegation

with delegation

行高代码:

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。

1 个答案:

答案 0 :(得分:0)

感谢@maddy和@Swift Rabbit的提示我得到了一个答案:是的,cource会影响委托行高:) 我已经为tableView实现了两次委托方法。一个在我的" StandardTV" -class和第二个在viewController上。因此,我认为我的" StandardTV" -class的第一个代表将被忽略,因此行高。

btw:我在不同的viewController中使用这些" StandardTV" -class并希望保持相同的行高。