为什么tableView 的cell 刚进去的时候里面的内容显示不正确,但是点击一下又显示正常?
我是子类化了一个tableView,然后用xib封装了一个tableViewcell,tableView 里面有里面要显示的控件,但是控件的位置、大小是在tableViewCell 的 setLayoutSubviews 中根据model 设置的。结果是没点击时,显示的位置是xib 里面的位置,然后点击之后是我在layoutSubviews 中设置的位置
我是子类化了一个tableView,然后用xib封装了一个tableViewcell,tableView 里面有里面要显示的控件,但是控件的位置、大小是在tableViewCell 的 setLayoutSubviews 中根据model 设置的。结果是没点击时,显示的位置是xib 里面的位置,然后点击之后是我在layoutSubviews 中设置的位置
暂且认为你说的是『tableViewCell 里面有里面要显示的控件』吧。
是不是勾上 AutoLayout 了…… 如果勾上了,layoutSubviews
不一定会调用。打个log看看调用了没有。
2 回答1.1k 阅读
1 回答1k 阅读✓ 已解决
1 回答2.7k 阅读
1 回答1.4k 阅读
1.7k 阅读
1 回答941 阅读
1 回答781 阅读
tableViewcell
封装或者不封装,高度都是由tableView
决定的,在你没有实现- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
回调的情况下,tableView的RowHeight是固定的44,你使用的xib,所以最先加载好以后是xib里面的高度。问题中说的布局问题,要确认
setLayoutSubviews
这个方法是否在model传递之后调用,题主可能使用的是layoutSubviews
方法,或者setNeedsLayout
?并不清楚,不过根据描述,点击后layoutSubviews
方法是要调用的,这个时候model肯定已经绑定过了,所以位置就正确了。(仅猜测)