我在每行上使用UITableView
并且有两个UITextFields
,以设置密码和确认密码。
我想使用章节页脚来显示密码是否匹配或是否太短等。
我正在使用..
[[self passcodeTableView]reloadSections:[NSIndexSet indexSetWithIndex:0]
withRowAnimation:UITableViewRowAnimationFade];
刷新页脚文本,以及我在别处设置的NSString。
但是,当我致电reloadSections
时,它会强制UITextFields
重新 - 在cellForRowAtIndexPath
中添加。
我认为if (cell == nil)
会阻止细胞被重绘,但显然不会。
我在这里做错了什么?
答案 0 :(得分: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";
答案 1 :(得分:0)
您可以将这些textFields添加为全局变量并创建一次,然后将它们传递给cellForRowAtIndexPath
。他们将添加他们以前的状态