UITableViewCell在非Nib及Cell重用下设置CellStyle
在UITableViewController(實現了UITableViewDataSource)下需要實現
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
此接口就是使用數據初始化一個Cell視圖并返回,我們可以每次創建一個新Cell,然后返回
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
這樣我們可以在創建Cell對象的時候設置它的Style。
而如果是Cell重用的時候,我們只能從tableView的cell池中獲取一個Cell對象
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath;
這樣得到的cell,是使用默認初始化方法和參數創建的,創建的過程有tableView負責,對我們透明。
而cell對象又沒有設置style的明確接口,因為又不是在nib環境下,也不能通過IB來設置。
最終的解決方法是,得到的cell對象再次調用初始化方法initWithStyle,即
cell = [cell initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"UITableViewCell"];
?
總結:初始化方法并不總是跟alloc配套使用,不要形成這樣的固定思維。alloc分配了內存后,可以調用多次初始化方法,就像隨便改變一個對象的屬性值一樣。
轉載于:https://www.cnblogs.com/guoxiaoqian/p/4444290.html
總結
以上是生活随笔為你收集整理的UITableViewCell在非Nib及Cell重用下设置CellStyle的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis好书推荐
- 下一篇: 一个想法:成立草根技术联盟对开发人员进行