Mar*_*ski 3 storyboard uitableview ios
我有一个UITableView作为UIViewController中的子视图.我没有使用UITableViewController,因为我有一些与tableview无关的其他内容占用了部分屏幕.我正在使用故事板.我将tableview设置为插座,viewcontroller是数据源和委托.如果我在这种情况下使用标准的UITableViewCell,一切运行良好,我可以加载内容.
我需要为此tableview使用自定义UITableViewCell,因此我执行了以下步骤:
[self.tableView registerClass:[SWTableViewCell class] forCellReuseIdentifier:@"Cell"];cellForRowAtIndexPath:方法中,将单元格出列并转换为自定义子类:SWTableViewCell *cell = (SWTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell"];检查时,单元格变量是正确的类型.它不是UITableViewCell,而是SWTableViewCell.但没有一个网点人口稠密.属性存在,但它们是零.我敢肯定有一个我必须要忘记的联系,但我想不出我在这一点上跳过的任何事情.
这种情况是否可行,或者它是否只能通过IB和故事板工作?
删除呼叫
[self.tableView registerClass:[SWTableViewCell class] forCellReuseIdentifier:@"Cell"];
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.
我不知道这个方法究竟是做什么的,因为我从未使用它,所以我会调查一下.如果有人有关于某些信息的信息,请告诉我们!
编辑:
所以,背后的想法registerClass:forCellReuseIdentifier:是它告诉tableView如何创建新的单元格.这样,如果dequeueReusableCellWithIdentifier:不返回单元格(如果队列为空),则tableView知道如何创建新单元格,而不需要手动创建一个单元格.
编辑2:
我找到了这个帖子,其中说:
如果使用故事板中的原型创建单元格,则无需注册该类.
简单地调用dequeueReusableCellWithReuseIdentifier:将"激活"tableView的单元重用功能.
所以registerClass:forCellReuseIdentifier:被称为只有当你手动构建你的细胞,而无需使用故事板.
| 归档时间: |
|
| 查看次数: |
3811 次 |
| 最近记录: |