我在storyboard
设计了一个自定义单元格,它位于UITableViewController
内,可以自定义单元格。
现在,我正在尝试在UITableViewController
上使用同一个单元格UISearchDisplayController
,但它无效。
这是我的方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
static NSString *CellIdentifier = @"CustomCell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier ];
}
cell.titleLabel.text = object[@"title"];
cell.subtitleLabel.text = object[@"subtitle"];
return cell;
}
它只返回白色的常规单元格,如果我使用默认的cell.textLabel.text
,它会显示我的对象。
答案 0 :(得分:0)
试试这个,在故事板上设置标记
http://i.stack.imgur.com/eVXPE.jpg
并改变你的方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
static NSString *CellIdentifier = @"CustomCell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier ];
}
//Change this - START
UILabel *titleLabel = (UILabel *)[cell viewWithTag:100];
UILabel *subtitleLabel = (UILabel *)[cell viewWithTag:101];
titleLabel.text = object[@"title"];
subtitleLabel.text = object[@"subtitle"];
//Change this - END
return cell;
}
答案 1 :(得分:0)
如果您在故事板上的桌面视图中创建了自定义单元格,我不知道您是否可以在另一个表格视图中使用它,或者在故事板上的新tableView中重新创建自定义单元格,或者单独制作自定义单元格。 xib仅用于单元格,并使用类似..
的方法将它们加载到cellForRow方法中CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(!cell)
{
[tableView registerNib:[UINib nibWithNibName:@"MyCustomCellNib" bundle:[NSBundle mainBundle] forCellReuseIdentifier:CellIdentifier];
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}
答案 2 :(得分:0)
或者甚至更好,您只需对现有代码进行一些小改动,并希望它能够正常工作:
自:
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
要:
CustomCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
或 Swift
自:
var cell = tableView.dequeueReusableCell(withIdentifier: CellIdentifier) as! CustomCell
致:
var cell = self.tableView.dequeueReusableCell(withIdentifier: CellIdentifier) as! CustomCell