UITableViewCell textLabel 在选择时改变位置
Posted
技术标签:
【中文标题】UITableViewCell textLabel 在选择时改变位置【英文标题】:UITableViewCell textLabel changing position on selection 【发布时间】:2015-05-02 18:44:19 【问题描述】:我使用代码创建了一个 UITableView 和一个 UITableViewCell 的子类,它显示得非常好,直到我选择了单元格。
单元格的文本标签有时会向右移动或不移动
选择前问题的图像表示
选择后问题的图像表示
相关代码
class MyCell: UITableViewCell
override func layoutSubviews()
super.layoutSubviews()
// here I fixed the image at a specific point
self.imageView?.bounds = CGRectMake(0, 0, 100, 125)
self.imageView!.frame = CGRectMake(0, 0, 100, 125)
self.imageView?.contentMode = .ScaleAspectFill
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = MyCell(style: UITableViewCellStyle.Default, reuseIdentifier: "FeedCell")
self.configureCell(cell, atIndexPath: indexPath)
return cell
func configureCell(cell: MyCell, atIndexPath indexPath: NSIndexPath)
let item = self.items[indexPath.row] as MWFeedItem
cell.textLabel?.text = item.title
cell.textLabel?.font = UIFont.systemFontOfSize(12.0)
cell.textLabel?.numberOfLines = 0
【问题讨论】:
【参考方案1】:你真的应该在你的子类中定义你自己的图像视图和文本标签(具有不同的名称),并应用约束来根据单元格的大小来布置它们,然后在控制器中设置行高,以便事情是正确显示。
即使在您的第一个图像中,图像的大小也不正确,因此单元和控制器之间的配置不匹配。您当前使用的属性在大小和位置方面应被视为私有私有,因为您不拥有设置视图这些功能的实现。
【讨论】:
对于任何回到这个问题的人。每当单元格移动到选定状态时,我的自定义单元格中的 textLabel 就会跳来跳去。我所做的只是在我的自定义单元格中定义我自己的 textLabel 属性,然后从内置的 textLabel 属性切换到我的新自定义属性。繁荣!问题解决了!以上是关于UITableViewCell textLabel 在选择时改变位置的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableViewCell 中设置 textLabel 的宽度
iPhone UITableViewCell:重新定位 textLabel
为啥 UITableViewCell textLabel 属性是可选的?
如何防止 UITableViewCell 中的缩进 contentView 而不是 textLabel