UITableViewCell 不使用不推荐使用的方法 initWithFrame:reuseIdentifier
Posted
技术标签:
【中文标题】UITableViewCell 不使用不推荐使用的方法 initWithFrame:reuseIdentifier【英文标题】:UITableViewCell without using deprecated method initWithFrame:reuseIdentifier 【发布时间】:2010-05-11 23:21:47 【问题描述】:我已阅读Loren's article 为 UITableViewCell 绘制您自己的内容。但是,他使用了一种已弃用的方法:initWithFrame:reuseIdentifier:
在 UITableViewCell 上已弃用。
如何在不使用initWithFrame:reuseIdentifier
的情况下让他的示例工作?
【问题讨论】:
【参考方案1】:只需将initWithFrame:reuseIdentifier:
替换为以下内容。
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])
// you might want to add the UIView to [self contentView]
// so that in edit's the cell's content will be automatically adjusted.
ABTableViewCellView *myUIView = [[ABTableViewCellView alloc] initWithFrame:CGRectZero];
myUIView.opaque = YES;
contentViewForCell = myUIView;
[self addSubview:myUIView];
[myUIView release];
return self;
另外,正如 Loren 指出的那样,苹果有一个例子,但他们使用 initWithStyle:reuseIdentifier:
http://developer.apple.com/iphone/library/samplecode/TableViewSuite/Introduction/Intro.html
【讨论】:
【参考方案2】:您可以参考此链接来查找已弃用方法的替代方法。应该很容易让代码与替换一起工作。 http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITableViewCell_Class/DeprecationAppendix/AppendixADeprecatedAPI.html
【讨论】:
【参考方案3】:另一种具体的理解方式是- initWithFrame:reuseIdentifier: 在 ios 3.0 中已弃用。使用 initWithStyle:reuseIdentifier: 代替
简单示例- 错误代码
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
预期代码
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
【讨论】:
当您这样做时,您可能会遇到单元格存在但不可见的问题... @AriBraginsky 你能详细说明你所说的问题和不可见的确切含义吗?以上是关于UITableViewCell 不使用不推荐使用的方法 initWithFrame:reuseIdentifier的主要内容,如果未能解决你的问题,请参考以下文章
UITableviewcell 不显示 UICollectionView
选择时 UITableViewCell 高度不更新。使用 UITableViewAutomaticDimension
如何使用函数选择 UITableViewCell,而不点击它?