编辑 tableView 时自定义单元格 imageView 移到左侧

Posted

技术标签:

【中文标题】编辑 tableView 时自定义单元格 imageView 移到左侧【英文标题】:Custom cell imageView shifts to left side when editing tableView 【发布时间】:2015-08-26 21:26:20 【问题描述】:

我有一个 tableView,我需要能够从中删除项目,但是,当我将其从编辑模式放回时,我的自定义单元格中的 imageView 会转移到左侧。以下是一些相关代码和图片:

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! NotificationsTableViewCell
    cell.storiesLabel.text = stories[indexPath.row].name
    cell.selectionStyle = UITableViewCellSelectionStyle.None
    cell.shouldIndentWhileEditing = false

    if stories[indexPath.row].notificationBool == true 
        cell.notificationImageView.image = UIImage(named: "notifications_filled.png")
    
    else 
        cell.notificationImageView.image = UIImage(named: "notifications.png")
    

    return cell


func editFollowedStoriesTableView() 
    if tableView.editing == true 
        tableView.setEditing(false, animated: false)
    
    else 
        tableView.setEditing(true, animated: false)
    


 func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle 

    if(self.tableView.editing)

        return UITableViewCellEditingStyle.Delete

    
    return UITableViewCellEditingStyle.None


如何防止出现第二张图片? 非常感谢任何帮助!

【问题讨论】:

你在使用自动布局吗? 是的,我是。你想看看约束吗? 是的。能发个截图吗? 当然可以。 imgur.com/a/niVKu 您是否尝试在结束编辑后重新加载表格视图? 【参考方案1】:

您有一些冲突的自动布局约束。您需要删除 UIImageView 上的以下约束之一:

Width
Leading Space to: Label
Trailing space to: Superview

这里,前导空格和尾随空格约束定义了 imageView 的宽度。然后你添加了做同样事情的宽度约束。现在,如果您希望图像视图具有固定宽度,请删除前导空格或尾随空格约束。如果不需要固定宽度,请删除宽度约束。

【讨论】:

这似乎不是问题。我尝试删除每个,它仍然以相同的方式显示。我现在也注意到,当我滑动出界时也会发生这种情况。这是一个 gif:imgur.com/4IV5BGg

以上是关于编辑 tableView 时自定义单元格 imageView 移到左侧的主要内容,如果未能解决你的问题,请参考以下文章

编辑单元格时自定义 UITableViewCell 反向缩进

滚动 UITableView 时自定义单元格中的 UITextField 文本正在更改

调用 reloadData 时自定义 UITableViewCell 内存泄漏

删除按钮出现时自定义表格视图单元格中缺少 UISlider 宽度的动画

TableView,自定义单元格编辑行为

快速滚动ios时自定义单元格中的UITextField值出现问题