自我调整大小的表格视图单元格不起作用
Posted
技术标签:
【中文标题】自我调整大小的表格视图单元格不起作用【英文标题】:Self Sizing Table View Cells isn't working 【发布时间】:2016-09-11 20:49:55 【问题描述】:我将estimatedRowHeight
设置为常量,将rowHeight
设置为UITableViewAutomaticDimension
,但表格视图单元格的大小仍未调整为单元格的detailTextLabel。我哪里错了?
override func viewDidLoad()
super.viewDidLoad()
tableView.estimatedRowHeight = 130.0
tableView.tableFooterView = UIView()
tableView.separatorInset.left = 50
tableView.registerClass(CommentCellView.self, forCellReuseIdentifier: cellid)
tableView.rowHeight = UITableViewAutomaticDimension
override func viewDidAppear(animated: Bool)
tableView.reloadData()
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier(cellid, forIndexPath: indexPath) as! CommentCellView
return cell
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 5
override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
return 60.0
UITableViewCell 类:
class CommentCellView: UITableViewCell
override init(style: UITableViewCellStyle, reuseIdentifier: String?)
super.init(style: .Subtitle, reuseIdentifier: reuseIdentifier)
detailTextLabel?.numberOfLines = 0
detailTextLabel?.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
【问题讨论】:
您的表格视图单元格中是否有适当的自动布局约束? 尝试删除你的estimatedHeightForRowAtIndexPath
func
【参考方案1】:
设置您的标签(在本例中称为yourText
)
var yourText : UILabel =
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
return label
()
以这种方式设置你的单元格约束并将setupComponents
方法放在这里:
required init(coder aDecoder: NSCoder)
super.init(coder: aDecoder)!
setupComponents()
override init(style: UITableViewCellStyle, reuseIdentifier: String?)
super.init(style: .Subtitle, reuseIdentifier: "CellId")
setupComponents()
func setupComponents()
self.addSubview(yourText)
yourText.leftAnchor.constraintEqualToAnchor(self.leftAnchor, constant: 6).active = true
yourText.centerYAnchor.constraintEqualToAnchor(self.centerYAnchor).active = true
yourText.widthAnchor.constraintEqualToConstant(110).active = true
yourText.numberOfLines = 0
yourText.lineBreakMode = NSLineBreakMode.ByWordWrapping
self.bottomAnchor.constraintEqualToAnchor(yourText.bottomAnchor, constant: 5).active = true
【讨论】:
以上是关于自我调整大小的表格视图单元格不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用固定大小的子视图和自动布局调整 UIView 的大小不起作用
自动调整嵌入在 UITableView 中的 UICollectionView 单元格不起作用