编辑模式下的UITableViewCell偏移问题


最近在项目中使用了UITableView的编辑模式来进行多选批量操作, 但是出现一个问题,就是用storyboard布局的话,cell里的内容默认是加到了contentView上的,这就导致了tableView变成编辑模式后,cell里的内容被压缩,造成一些显示上的问题。

图中给contentView设置了背景色

解决方案


重写UITableCell的<strong>willTransition(to state: UITableViewCellStateMask)</strong>方法

    @IBOutlet weak var labelTrailing: NSLayoutConstraint!   //label右边距

    override func willTransition(to state: UITableViewCellStateMask) {
        super.willTransition(to: state)
        switch state {
        case UITableViewCellStateMask.showingEditControlMask:   //cell进入编辑模式
            labelTrailing.constant = -30
        case []:    //cell退出编辑模式
            labelTrailing.constant = 8
        default:
            break
        }
    }

在进入编辑模式时,将label的右边距同步向右移,退出编辑模式时,再恢复原有布局

之后.gif

BY THE WAY


在测试过程中发现其实UITableViewCell的一些系统自带的效果其实都是跟contentView同级的,例如上文的edit选择框,还有cell的accessoryType属性等等,在布局时这些细节最好还是有充分了解~~

其他.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容