如何自动调整单元格大小?

时间:2018-02-21 09:25:40

标签: ios swift uitableview

我有一个小问题,关于伸展细胞。我正在使用WSTagsField库。

class UITableViewCell: UITableViewCell {

        @IBOutlet weak var tagsView: UIView!
}

class UITableViewController: UITableViewController {

     override func viewDidLoad() {
             tableView.estimatedRowHeight = 44
     }

     override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {

         return UITableViewAutomaticDimension
     }

     override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

            cell = tableView.dequeueReusableCell(withIdentifier: "tagField", for: indexPath) as! AddManuallyRecipeTableViewCell

            let tagsView = cell.tagsView!
            let tagsField = WSTagsField()

            tagsField.frame = tagsView.bounds
            tagsView.addSubview(tagsField)

            tagsField.layer.cornerRadius = 3.0
            tagsField.font = .systemFont(ofSize: 14.0)
            tagsField.placeholder = "Добавить тэг ..."
            tagsField.returnKeyType = .next
            tagsField.delimiter = " "

            tagsField.onDidChangeHeightTo = { tagField, height in
                print("HeightTo \(height)")
                tagsField.layoutSubviews()
                tableView.beginUpdates()
                tableView.endUpdates()

            }
}

创建新字符串时会调用一个方法 - > onDidChangeHeightTo。这里传递了一个新的高度。

enter image description here

1 个答案:

答案 0 :(得分:0)

在视图中添加此行并加载并检查您的约束必须准确... Android SDK location: C:\Users\JDoe\AppData\Local\Android\Sdk JDK location: C:\Program Files\Android\Android Studio\jre  所以你的viewDidLoad看起来像。

tableView.rowHeight = UITableViewAutomaticDimension