0

我在每行UITableView使用两个UITextFields,设置密码和确认密码。

我想使用部分页脚来显示密码是否匹配或是否太短等。

我正在使用..

[[self passcodeTableView]reloadSections:[NSIndexSet indexSetWithIndex:0] 
                withRowAnimation:UITableViewRowAnimationFade];

要刷新页脚文本,以及我在其他地方设置的 NSString。

但是,当我调用它时,reloadSections它会强制UITextFields重新添加.cellForRowAtIndexPath

我认为if (cell == nil)会阻止细胞被重绘,但显然不是。

我在这里做错了什么?

4

2 回答 2

1

创建一个变量来存储文本并在您的对象中访问。将此添加到 YourClass.m:

@interface YourClass () {   
     UILabel *footerLabel;
}

@end

将此方法添加到您的类中:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    if (!footerLabel) {
        footerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 0.0)];
    }

    return footerLabel;
}

- (float)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 60.0;
}

然后,当您想更改文本时,只需更新 footerLabel:

footerLabel.text = @"Your new text";
于 2013-03-05T09:53:50.573 回答
0

您可以将这些文本字段添加为全局变量并创建一次,然后将它们传递给cellForRowAtIndexPath. 他们将被添加到他们以前的状态

于 2013-03-05T09:12:51.777 回答