Ios 自调整大小UITableView单元格大小不正确
我有一个带有静态单元格的Ios 自调整大小UITableView单元格大小不正确,ios,uitableview,xcode8,Ios,Uitableview,Xcode8,我有一个带有静态单元格的UITableView。描述标签应显示多行文本,但仅显示一行 我已选择描述标签并将行数设置为0。我还将其设置为Word Wrap 我已按如下方式设置自动标注: class BeerTableViewController: UITableViewController { @IBOutlet weak var beerName: UILabel! @IBOutlet weak var brewer: UILabel! @IBOutlet weak v
UITableView
。描述标签应显示多行文本,但仅显示一行
我已选择描述标签并将行数设置为0。我还将其设置为Word Wrap
我已按如下方式设置自动标注:
class BeerTableViewController: UITableViewController {
@IBOutlet weak var beerName: UILabel!
@IBOutlet weak var brewer: UILabel!
@IBOutlet weak var beerDescription: UILabel!
var scannedBeer: Beer!
override func viewDidLoad() {
super.viewDidLoad()
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44
beerName.text = scannedBeer.name
brewer.text = scannedBeer.brewer
beerDescription.text = scannedBeer.description
}
override func viewDidAppear(_ animated: Bool) {
tableView.reloadData()
}
}
我已将标签固定到ContentView的顶部和底部,如下所示:
尝试使用
UITableViewDelegate的UITableViewAutomaticDimension的高度和估计高度
只需将表视图delegate
设置为self
,并使用以下命令:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
这是因为您的beereDescription在ViewDidLoad上标记为nil。您需要在cellForRowAtIndexpath而不是ViewDidLoad上赋值
并且不能在UIViewcontroller类中连接单元格子视图的IBOutlet
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let identifier = "cellIdentifier"
let cell = tableView.dequeueReusableCell(withIdentifier: identifier)
beerDescription: UILabel? = (newsCell?.viewWithTag(101) as? UILabel) // assign tag to label in cell
beerDescription.text = scannedBeer.description
return cell
}
将“高度约束”设置为大于等于。我恐怕不能,因为我使用的是静态单元格,而不是动态单元格。您可以使用,无论您使用的是静态单元格还是动态单元格。HeightforRowatineXpath工作正常!非常感谢。你能编辑你的答案吗。。。第一个函数应该是heightForRow。万分感谢!