你能帮我解决这个问题吗,因为initWithFrame:reuseIdentifier方法被弃用了:
static NSString *CellIdentifier = @”Cell”;
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}在Thx之前,
斯蒂芬
发布于 2011-09-07 07:48:54
您必须使用:initWithStyle:reuseIdentifier:
发布于 2011-09-07 07:52:59
更好的方法是在CustomCell.m中定义一个getter
-(NSString*) reuseIdentifier
{
return @"Cell";
}在该方法中,您将返回重用标识符。然后,您也可以为变量创建一个setter,从而允许您拥有任何一组自定义单元格,这些单元格具有您计划使用的任何重用标识符。
另一种包含重用标识符且未被折旧的方法是
[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];发布于 2011-09-07 08:26:25
除了其他答案之外,还有一件事是你正在做的,它明显是不正确的:
cell = [[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];调用init alloc意味着您已经继承了UITableViewCell,并且正在使用您在其中编写的自己的CustomCell方法(通过阅读问题的其余部分,我知道情况并非如此)。
您可能想要将该行更改为:
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleWhatever reuseIdentifier:CellIdentifier] autorelease];您不需要使用initWithFrame,因为单元格的框架是由它所在的UITableView的宽度和您在UITableView的数据源方法中传递的heightForRowAtIndexPath中的高度决定的。
https://stackoverflow.com/questions/7327403
复制相似问题