UITableViewCell 样式字幕多行不起作用
Posted
技术标签:
【中文标题】UITableViewCell 样式字幕多行不起作用【英文标题】:UITableViewCell style subtitle mutiple line not working 【发布时间】:2016-11-09 05:20:40 【问题描述】:我有一个自定义样式UITableviewCell
,它有其他的默认高度我正在使用带有字幕样式的表格视图单元格,我想让字幕成为多行。它做得很好,但在计算 tableview 单元格高度时遇到问题,我使用 UITableviewAutomaticDimension
但它不起作用。
这是我的代码
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
if(indexPath.row==0)
var cell: ImageCell! = tableView.dequeueReusableCellWithIdentifier("ImageCell") as? ImageCell
if cell == nil
tableView.registerNib(UINib(nibName: "ImageCell" ,bundle: nil), forCellReuseIdentifier: "ImageCell")
cell = tableView.dequeueReusableCellWithIdentifier("ImageCell") as? ImageCell
return cell
else
var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("SubtitleCell")
if (cell == nil)
cell = UITableViewCell.init(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "SubtitleCell")
cell!.backgroundColor = UIColor.brownColor()
cell!.textLabel?.font = UIFont.init(name: "HelveticaNeue", size: 15)
cell!.textLabel?.textColor = UIColor.blackColor()
cell!.textLabel?.highlightedTextColor = UIColor.lightGrayColor()
cell!.selectedBackgroundView = UIView.init()
cell!.textLabel?.text = "TExt"
cell!.detailTextLabel!.text="Keep in mind that UITableView is defined as an optional in the function, which means your initial cell declaration needs to check for the optional in the property. Also, the returned queued cell is also optional, so ensure you make an optional cast to UITableViewCell. Afterwards, we can force unwrap because we know we have a cell."
allowMultipleLines(cell!)
cell!.imageView?.image = UIImage(named: "IconProfile")
return cell!
func allowMultipleLines(tableViewCell:UITableViewCell)
tableViewCell.detailTextLabel?.numberOfLines = 0
tableViewCell.detailTextLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
if(indexPath.row==0)
return 172
else
return UITableViewAutomaticDimension
【问题讨论】:
可能重复***.com/questions/36587126/… 【参考方案1】:在你的viewDidLoad()方法中你需要写
yourTableViewName.rowHeight = UITableViewAutomaticDimension
再添加一个方法
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
if(indexPath.row==0)
return 172
else
return UITableViewAutomaticDimension;
希望对你有帮助
【讨论】:
您使用的是自动布局? 是的,自动布局被选中。 只需注释 heightForRowAtIndexPath 方法并运行您的项目 不,它不适用于多行字幕。它只为每行高度返回 45 左右。以上是关于UITableViewCell 样式字幕多行不起作用的主要内容,如果未能解决你的问题,请参考以下文章
错误:无法使用自定义单元格类设置 UITableViewCell 标签和图像!只能加载单元格样式的数据:字幕不是自定义的
UITableViewCell 中带有多行标签的 UIStackView 高度不正确