概述
今天新建的页面中添加了 UITableView,真机运行时,竟然发现 TableView中的数据竟然时隔行显示,在滑动 TableView 时,其中部分行内容消失,并且通过capture屏幕发现内容消失的行下方显示了内容,只是被新添加的空白行遮住了
分析
通过分析发现,在 UITableViewCell 中override func layoutSubviews()
中部分控件的设置如下
timeLabel.center = self.center
而实际上self.center
获取的点为当前 cell 在整个TableView中的位置,而timeLabel的位置是相对于当前 cell 而言的,因此会出现位置错误。
解决方案
将 cell 中控件的 Y 坐标改为由 (cell.height - timeLabel.height) / 2.0
计算得出即可。
网友评论