UITableViewCell没有正确出列

时间:2014-03-06 15:18:43

标签: ios objective-c uitableview

enter code here我知道,有很多这样的帖子,但是我的手机没有正确地出列。我可能遗失的任何东西?我总是这样做,世界!我不确定在这种情况下我可能会遇到什么问题。

static NSString *FSStandardFormCellIdentifier = @"FSStandardFormCell";
FSStandardFormCell *cell = [tableView dequeueReusableCellWithIdentifier:FSStandardFormCellIdentifier];

if (cell == nil) {
    NSLog(@"cell was not dequeued");
    cell = [[FSStandardFormCell alloc] initWithReuseIdentifier:FSStandardFormCellIdentifier];
}

这是我的自定义初始化程序:

- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
    if (self) {
        self = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([FSStandardFormCell class]) owner:self options:nil][0];
    }
    return self;
}

谢谢!

2 个答案:

答案 0 :(得分:0)

在接口构建器中定义的我的单元标识符与以下内容中的单元标识符不匹配:

static NSString *FSStandardFormCellIdentifier = @"FSStandardFormCellIdentifier";

之后,一切都很好。

答案 1 :(得分:0)

此:

- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
    if (self) {
        self = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([FSStandardFormCell class]) owner:self options:nil][0];
    }
    return self;
}

是错的。在很多不同的层面上。

看,我不打算详细说明为什么这段代码会让大多数人的眼睛流血,但在你的特殊情况下,只需使用这段代码来解决你的问题:

static NSString *FSStandardFormCellIdentifier = @"FSStandardFormCell";
FSStandardFormCell *cell = [tableView dequeueReusableCellWithIdentifier:FSStandardFormCellIdentifier];

if (cell == nil) {
    NSLog(@"cell was not dequeued");
    cell = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([FSStandardFormCell class]) owner:nil options:nil][0];
}