Rae*_*esu 0 objective-c uitableview ios
我有一个 TableViewController 子类用作我的搜索结果控制器。我没有故事板或xib,所以它完全用代码实现。我只实现了数据源方法。
我正在尝试制作样式的单元格,UITableViewCellStyleSubtitle但无法使其正常工作。在viewDidLoad我使用代码[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];,然后在cellForRowAtIndexPath:,我有这个:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
}
Run Code Online (Sandbox Code Playgroud)
但是,鉴于我的registerClass电话,我认为 cell 永远不会为零,因此样式永远不会从默认值更改。如果我删除registerClass调用,我会收到以下消息的崩溃:“无法使用标识符 Cell 使单元出列 - 必须为标识符注册一个笔尖或类,或者连接故事板中的原型单元”。删除if单元格的块没有任何效果。
这是一个很小的变化,我觉得没有必要UITableViewCell在 Storyboard 中创建子类或构建它。任何帮助表示赞赏。
cell 如果你打电话,永远不会为零 dequeueReusableCellWithIdentifier:forIndexPath:
dequeueReusableCellWithIdentifier:如果现有单元格可用,则此方法使现有单元格出列,或者使用您之前注册的类或 nib 文件创建一个新单元格。如果没有可重用的单元格并且您没有注册类或 nib 文件,则此方法返回 nil。
dequeueReusableCellWithIdentifier:forIndexPath:如果现有单元格可用,则此方法使现有单元格出列,或者根据您之前注册的类或 nib 文件创建一个新单元格。
尝试这样做:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2443 次 |
| 最近记录: |