ios - 更改单元格高度后单元格文本标签未居中
问题描述
我有一个 value1 类型的单元格,因为我的一些详细标签文本太长并且被截断,所以我正在更新单元格高度以适合文本。
但是,在更新高度后,我的文本标签位于左上角,而不是垂直位于中间。所以像这样:
================== =====================
label => label
==================
=====================
有人知道怎么修这个东西吗?
编辑
更改高度代码:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
var rowHeight=44.0
var numOfLines = 1;
if let cell = tableView.cellForRow(at: indexPath),let label = cell.detailTextLabel, let size = label.text?.size(withAttributes: [NSAttributedString.Key.font:label.font]){
let labelWidth = label.frame.width
label.textAlignment = .left
while(Int(size.width) > Int(labelWidth) * numOfLines){
rowHeight+=20;
numOfLines+=1
}
//becuase it was rounded down as int
numOfLines+=1
print("number of lines \(numOfLines)")
label.numberOfLines = numOfLines
label.lineBreakMode = .byCharWrapping
}
return CGFloat(rowHeight)
}
解决方案
@Anna,我相信您的问题可以通过UITableViewAutomaticDimension
.
只需确保numberOfLines
标签的设置为0
并且heightForRowAtIndexPath
委托方法应该返回UITableViewAutomaticDimension
,并且不要忘记为标签添加右、左、上和下约束。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
请找到链接以获取更多参考: UITableViewAutomaticDimension
推荐阅读
- python - 如何遍历 Pyspark RDD 中的每一行并将它们变成键?使用地图功能?
- python - Python总线错误破坏python环境
- firebase - timestampsInSnapshots 设置现在默认为 true,您不再需要显式设置它
- python - 与分析用户一起在 Python 上使用 GoogleSearch?
- javascript - 在laravel中的razorpay响应后缺少Route所需的参数
- html - 什么是弯曲对齐左右两个项目的最佳方法
- aspnetboilerplate - Aspnetboilerplate AbpEntities 的外部 POCO 类。即不可能继承
- php - 砍掉一个名字,Magento 2 小部件
- apache-spark - Pyspark:将缺失值处理为空字符串
- deployment - 使用 Jaeger 代理的优势