我已閱讀Loren's article爲UITableViewCell繪製自己的內容。但是,他正在使用已棄用的方法:initWithFrame:reuseIdentifier:
已在UITableViewCell上棄用。UITableViewCell不使用不推薦使用的方法initWithFrame:reuseIdentifier
如何讓他的示例在不使用initWithFrame:reuseIdentifier
的情況下工作?
我已閱讀Loren's article爲UITableViewCell繪製自己的內容。但是,他正在使用已棄用的方法:initWithFrame:reuseIdentifier:
已在UITableViewCell上棄用。UITableViewCell不使用不推薦使用的方法initWithFrame:reuseIdentifier
如何讓他的示例在不使用initWithFrame:reuseIdentifier
的情況下工作?
只需用以下代替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;
}
此外,蘋果有一個例子作爲洛倫指出,但他們使用的initWithStyle:reuseIdentifier:
http://developer.apple.com/iphone/library/samplecode/TableViewSuite/Introduction/Intro.html
您可以參考此鏈接來查找已棄用方法的替代品。應該很容易讓代碼與替代品一起工作。 http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITableViewCell_Class/DeprecationAppendix/AppendixADeprecatedAPI.html
另一種具體的方式來理解是 - 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];
}
當你做到這一點,其中電池是那裏你可以遇到的問題,但它只是看不見...... – 2012-11-14 22:38:47
@AriBraginsky你能詳細說明一下你究竟是什麼意思,並且在這裏看不見? – 2012-11-15 08:00:23