iphone sdk:无法重复使用viewWithTag的单元格(无法将setText重用于重复使用的标签)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iphone sdk:无法重复使用viewWithTag的单元格(无法将setText重用于重复使用的标签)相关的知识,希望对你有一定的参考价值。
这是我的cellForRowAtIndexPath
功能。我无法让setText
到标签上工作。你能帮帮我吗?
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UILabel *messageLabel = nil;
int row = [indexPath row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, 320, ROWHEIGHT) reuseIdentifier:CellIdentifier];
messageLabel = [[UILabel alloc] initWithFrame:CGRectMake(60, 5, 240, 60)];
[messageLabel setFont:[UIFont fontWithName:@"ArialMT" size:12]];
[messageLabel setTextColor:[UIColor blackColor]];
[messageLabel setBackgroundColor:[UIColor clearColor]];
[messageLabel setNumberOfLines:3];
[messageLabel setLineBreakMode:UILineBreakModeWordWrap];
[messageLabel setTag: messageTag];
[cell.contentView addSubview:messageLabel];
}
else{
messageLabel = (UILabel *)[cell viewWithTag:messageTag];
}
[messageLabel setText:[[[aSingleton wallItemArray] objectAtIndex:row] message]];
NSLog(@" -- > at row %d, message: %@", row, [[[aSingleton wallItemArray] objectAtIndex:row] message]);
return cell;
}
答案
您将UILabel添加到单元格的contentView
,但要求单元格查看视图。
你有没有尝试过:
messageLabel = (UILabel *)[cell.contentView viewWithTag:messageTag];
编辑:此外,你有两个内存泄漏 - 你是一个UITableViewCell和UILabel没有(自动)释放他们任何地方的alloc
。
以上是关于iphone sdk:无法重复使用viewWithTag的单元格(无法将setText重用于重复使用的标签)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UItextView 中添加 placeHolder 文本?在 iphone sdk [重复]
如何在iphone sdk的Touch down事件中设置增加声音的速率并重复这个声音
无法通过 iphone sdk 中的 [FBSDKAccessToken currentAccessToken] 获取访问令牌