【问题标题】:UITableViewCell textLabel changing position on selectionUITableViewCell textLabel 在选择时改变位置
【发布时间】: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
}

【问题讨论】:

    标签: ios uitableview swift tableview


    【解决方案1】:

    你真的应该在你的子类中定义你自己的图像视图和文本标签(具有不同的名称),并应用约束来根据单元格的大小来布置它们,然后在控制器中设置行高,以便事情是正确显示。

    即使在您的第一个图像中,图像的大小也不正确,因此单元和控制器之间的配置不匹配。您当前使用的属性在大小和位置方面应被视为私有私有,因为您不拥有设置视图这些功能的实现。

    【讨论】:

    • 对于任何回到这个问题的人。每当单元格移动到选定状态时,我的自定义单元格中的 textLabel 就会跳来跳去。我所做的只是在我的自定义单元格中定义我自己的 textLabel 属性,然后从内置的 textLabel 属性切换到我的新自定义属性。繁荣!问题解决了!
    猜你喜欢
    • 2010-12-23
    • 2012-07-25
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多