tableView:heightForRowAtIndexPath:不为UITableViewController调用放置在类别中

时间:2012-07-17 15:42:05

标签: objective-c ios uitableview ios5 objective-c-category

我有UITableViewController

@interface GenderSelectController : UITableViewController

- (id)initWithPreviousGender:(NSString*)prevGender;

@end

@implementation GenderSelectController

- (id)initWithPreviousGender:(NSString *)_prevGender
{
    // It's not loaded from nib but created in code
    if ((self = [super initWithStyle:UITableViewStyleGrouped])) {
        prevGender = _prevGender;
    }
    return self;
}

我有一个分类方法

@interface UITableViewController (RowHeight)

@end

@implementation UITableViewController (RowHeight) 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return (indexPath.row) ? tableView.rowHeight : tableView.rowHeight - 1;
}

@end

直到我明确地说它才会被调用

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [super tableView:tableView heightForRowAtIndexPath:indexPath];
}

但另一个类别,UIViewController实现了UITableViewDelegate方法,它运行得很好。怎么了?

0 个答案:

没有答案