我在与UITableView相同的nib文件中设计了一个自定义UITableViewCell。然后我使用以下代码显示它:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"SearchViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
NSInteger section = [indexPath section];
switch (section) {
case 0: // First cell in section 1
return self.priceRangeCell;
break;
default:
// Do something else here if a cell other than 1,2,3 or 4 is requested
return cell;
break;
}
我的问题是我对整个dequeueReusableCellWithIdentifier业务感到困惑。我甚至需要以下部分吗?:
static NSString *CellIdentifier = @"SearchViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
你能看到我的代码有任何其他问题吗?
由于
答案 0 :(得分:0)
你并不一定要使用你提到的代码,但不是这样的代码。如果你不使用那个if子句,那么每次滚动表时都会创建新的单元格,而不是重用旧表格 - 这对内存使用不利。
其次,您的代码中缺少某些内容 - 您不会使用任何内容填充您的单元格。您返回一个单元格,但尚未向其中添加任何内容。