Ars*_*niy 8 iphone xcode customization uitableview xib
我正在从定制我的TableViewCells迁移tableView:cellForRow:atIndexPath:到使用自定义UITableViewCell子类.这是我如何做到的:
首先,创建空的XIB,拖到UITableViewCell那里然后放在UILabel上面.创建了一个类(子类UITableViewCell),并在Interface Builder的属性编辑器中将类设置为MyCell.然后,在我的TableViewController中,输入以下内容:
- (void)viewDidLoad
{
[super viewDidLoad];
// load custom cell
UINib *cellNIB = [UINib nibWithNibName:@"MyCell" bundle:nil];
if (cellNIB)
{
[self.tableView registerNib:cellNIB forCellReuseIdentifier:@"MyCell"];
} else NSLog(@"failed to load nib");
}
Run Code Online (Sandbox Code Playgroud)
之后,我清除了所有自定义代码,tableView:cellForRow:atIndexPath:只留下默认行:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我希望在每个单元格中看到一堆单个标签的单元格(我在创建XIB时在中间放置的标签).但相反,我只看到纯白色的空单元格,并添加/删除组件到XIB布局没有帮助.
我花了一天尝试不同的选项,比如在Interface Builder中为自定义单元格XIB设置reuseIdentifier并加载视图tableView:cellForRow:atIndexPath:,但没有任何帮助.
Ars*_*niy 10
......但事实证明,这是我错过了唯一的事情,正在收拾原型细胞的reuseIdentifier在我的故事板这种TableViewController.似乎Storyboard稍后初始化其视图/组件viewDidLoad,而不是采用我的好自定义单元格,xCode设置真正的单元格视图以重用纯白色单元格,这是新创建的TableViewControllers的标准.
再次:转到TableView属性并删除之前设置的reuseIdentifier;)
我花了这么多时间来做这件事,所以如果我在这里分享这种经历,我认为它可能对某人有所帮助.
| 归档时间: |
|
| 查看次数: |
3731 次 |
| 最近记录: |