在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相关推荐

  1. ubuntu设置mysql可以非本地访问_ubuntu server下设置mysql的远程访问权限

    安装mysql 安装mysql的方式较多主要有使用源安装,使用本地压缩包进行安装的方式. 具体参照 [ubuntu安装mysql5.5] 检查mysql的远程访问权限 en@iZ944qtakg9Z: ...

  2. UITableViewCell中cell重用机制导致内容重复的方法

    UITableView继承自UIScrollview,是苹果为我们封装好的一个基于scroll的控件.上面主要是一个个的UITableViewCell,可以让UITableViewCell响应一些点击 ...

  3. UI基础(四)之tableView (cell重用、原型cell、静态cell)/xib注意事项

    ---恢复内容开始--- 1.Cell的重用机制: 如下图所示:我们在写tableview的数据源方法的时候,在第三个方法中通常会碰到定义重用cell的三步骤 #pragma mark -- 数据源方 ...

  4. 自定义非等高 Cell

    1.自定义非等高 Cell介绍 1.1 代码自定义(frame) 新建一个继承自 UITableViewCell 的类. 重写 initWithStyle:reuseIdentifier: 方法. 添 ...

  5. 非等高cell实战(01)-- 实现微博页面

    非等高cell实战(01)-- 实现微博页面 学习过UITableView.AutoLayout以及MVC的相关知识,接下来通过一个微博页面实战来整合一下. 首先看一下效果图: 需求分析 此页面为非等 ...

  6. 非等高cell实战--实现微博页面

    代码地址如下: http://www.demodashi.com/demo/11639.html 前言 学习过UITableView.AutoLayout以及MVC的相关知识,接下来通过一个微博页面实 ...

  7. tableView 取消 cell 默认下划线样式 - iOS

    tableView 无数据的情况下会配置一个默认暂无数据的样式,但 tableView 实例化后会渲染出很多行 cell 的线条,此时看着很不美观,配置如下 code 即可消除 cell 的下横线,需 ...

  8. 【转载】ATI显卡在Ubuntu下设置方法(很全面)

    [转载]ATI显卡在Ubuntu下设置方法(很全面) //终于看到了一个解决ATI显卡在linux的解决方法,先转载一个. 原文地址:http://forum.ubuntu.com.cn/viewto ...

  9. linux环境oracle环境变量,Linux下设置oracle环境变量

    Linux设置Oracle环境变量 方法一:直接运行export命令定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新s ...

最新文章

  1. 终极AutoCAD大师班:成为AutoCAD专家
  2. 拒绝从入门到放弃_《Openstack 设计与实现》必读目录
  3. 说了低调...这下百度知道了...
  4. shell date 格式化
  5. CentOS7.6 Open vSwitch安装
  6. Cuyahoga的安装及结构
  7. Unity 内建数据索引
  8. 系统页面升级系统中_中交出行通勤班线系统全新升级!页面亮点功能说明
  9. C语言 二级指针内存模型混合实战
  10. Linux文件权限一共10位长度,分成四段,每段的含义
  11. 自定义列_如何对Pandas DataFrame进行自定义排序
  12. iOS 硬件 定位 - 详解 数据的处理
  13. 含有n个元素的整型数组,将这个n个元素重新组合,求出最小的数,如{321,3,32},最小的数为321323...
  14. [小白slam攻略]ROVIO安装运行及保存轨迹用evo评估
  15. 【C语言】数据表现形式及基本数据类型
  16. 重磅!腾讯优图29篇论文入选顶会ECCV 2022
  17. 猎聘网推出移动互联求职新方式
  18. 【CSS】尺寸和边框、盒子模型、外边距_02
  19. cocoscreator的Bundle加载问题
  20. 详解:S锁(读锁)和X锁(写锁)

热门文章

  1. ExtJS Grid Column Number
  2. linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下
  3. VC++的windows服务
  4. IntelliJ IDEA2017 修改缓存文件的路径
  5. 首次构建android studio gradle 下载缓慢的问题
  6. Python 练习册,每天一个小程序
  7. 轻松获取LAMP环境的配置参数
  8. Portal-Basic Java Web 应用开发框架:应用篇(十四) —— 异步 Action
  9. Asp.net web Api源码分析-HttpParameterBinding
  10. [zz]Linux操作系统下三种配置环境变量的方法