使用UITableView
并发现cells
未正确出列。我使用storyboard
创建了原型单元格,并且在单元格上有UIlabel
。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"cell";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell==nil) {
cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
UILabel*textLabel = (UILabel*)[cell viewWithTag:11];
textLabel.font=[UIFont fontWithName:@"MyUnderwood" size:16];
textLabel.text = [_tableLabelArray objectAtIndex:indexPath.row];
return cell;
}
以下是我在滚动UITableView
TableView
图片
答案 0 :(得分:0)
您未在CellForRowAtIndexPath
中使用自定义单元格。代码看起来很好,只是UITableViewCell
使自定义单元格出列如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"cell"; //needs to be the identifier you defined in story boards
YourCustomCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell==nil) {
cell=[[YourCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
UILabel*textLabel = (UILabel*)[cell viewWithTag:11];
textLabel.font=[UIFont fontWithName:@"MyUnderwood" size:16];
textLabel.text = [_tableLabelArray objectAtIndex:indexPath.row];
return cell;
}
然后你需要创建UITableViewCell的子类并将其命名为YourCustomCell并链接所有IBOutlet
对象,如标签等。将这行代码放在.h文件#import YourCustomCell.h
之上,然后只需访问所有该单元格的属性,如cell.textLabel
,而不是创建标签并将其投射到带标签的视图。
答案 1 :(得分:0)
这可能只是一个小错误。尝试使用不同的标记值,或验证原型单元格中使用的值。
答案 2 :(得分:0)
我通过使用“nil”而不是cellIdentifier
解决了这个问题例如: 而不是
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
使用此
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:nil];
它为我做了诀窍
答案 3 :(得分:-1)
您只需勾选故事板中标签的“清除图形上下文”属性。