- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用表格 View 来显示从服务器加载的文本字段数组,所以我有一个表格 View 字段列表,当我填充这些数据字段并向下滚动以填充其他字段时,当我再次向上滚动时,我发现值发生变化并且存在重复值
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"FieldCell";
//FieldCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
FieldCell *cell = [[FieldCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
//Filling The DataHere
cell.cellImage.image = [UIImage imageNamed:[images objectAtIndex:indexPath.row]];
cell.cellTextField.placeholder = [placeHolders objectAtIndex:indexPath.row] ;
// Configure the cell...
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.backgroundColor = [UIColor clearColor];
return cell;
}
我认为 dequeueReusableCellWithIdentifier:CellIdentifier 中的问题是因为它重新分配和分配单元格,但我不想这样做我想让内存中的所有东西都有它的值
最佳答案
您的 cellForRowAtIndexPath
负责获取单元格并将正确的值放入其中 - 这就是我要求您展示整个方法的原因。您在问题中输入的代码不是完整的 cellForRowAtIndexPath
方法。
更新 - 我包含了一个从单元格到 TableView 的简单委托(delegate)回调,以允许单元格中的 UITextField 委托(delegate)更新后备存储。我没有为委托(delegate)使用适当的协议(protocol),因为我想快速将其组合在一起。
FieldCell.h
@class TableView
@property (strong,nonatomic) TableView *delegate;
@property (strong,nonatomic) NSIndexPath indexPath;
@property (strong,nonatomic) UITextField *textField;
FieldCell.c
#import <TableView.h>
#pragma mark -
#pragma mark UITextFieldDelegate
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (self.delegate)
{
[self.delegate updateCellText:[textField.text stringByReplacingCharactersInRange:range withString:string] forIndexPath:self.indexPath;
}
return YES;
}
表格 View .h
@property (strong,nonatomic) NSMutableArray *cellTexts; // You need to initialise this as an array full of empty NSStrings or whatever the initial cell values should be
- (void) updateCellText:(NSString *)text forIndexPath:(NSIndexPath)indexPath;
表格 View .c
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"FieldCell";
FieldCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.indexPath=indexPath;
cell.delegate=self;
cell.textField.text=[self.cellTexts objectAtIndex:indexPath.row]; // modify this as required to actually put your data to be displayed into the cell's properties
return cell;
}
- (void) updateCellText:(NSString *)text forIndexPath:(NSIndexPath)indexPath
{
[self.cellTexts replaceObjectAtIndex:indexPath.row withObject:text];
}
关于ios - dequeueReusableCellWithIdentifier :CellIdentifier how to avoid it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22750756/
我已阅读 this question并认为我理解这两种方法之间的区别,直到我找到一个奇怪的例子: 在Storyboard中设置table view cell的样式为Basic,Identifier为C
dequeueReusableCellWithIdentifier 有两个重载,我正在尝试确定何时应该使用一个与另一个? 关于 forIndexPath 函数的苹果文档指出,“此方法使用索引路径根据单
我在我的一个 TableView 中使用仪器发现了内存泄漏,恰好在这一行: [[NSBundle mainBundle] loadNibNamed:@"ShopListCell" owner:self
我正在使用带有 UITableViewController 和 UITableViewCell 子类的 ios5 Storyboard。我不想在 View 的 Storyboard设计器中设计单元格的
我正在尝试在独立于 Storyboard 和 Nib 配置的表格 View 中使用自定义单元格。 每当我使用 tableview 的 dequeuing 方法时,这些单元格都会作为标准返回,即磨坊单元
如果我打电话: -[UITableView dequeueReusableCellWithIdentifier] 然后我选择不是 在此方法中重用单元格 - (UITableViewCell *)tab
我的目标是显示一个单元格列表,这些单元格由我从服务器上提取的一些数据填充。当用户向下滚动时,我希望有一个表格单元格,上面写着“正在加载更多”,然后随着更多单元格被数据填充而消失。 以下是执行此操作的相
好的,我有一个表格,其中包含 3 个不同的原型(prototype)单元格(cellVaccination、cellAdmin、cellExpire)。在我的 cellForRowAtIndexPat
我有一个 UITableView,一旦它滚出屏幕,它就不会释放它显示的数据。 每个表格单元格都需要显示名称、日期和图片。第一个充满屏幕的单元格在启动时可以正常工作,因为它们没有被重复使用。然而,一旦您
我在带有自定义单元格的 UIViewController 中使用 UITableView。但是,当 dequeueReusableCellWithIdentifier 被调用时,它有时会创建一个新单元
我试图了解出了什么问题,因为当我进行 TableView 更新并调用 cellForRowAtIndexPath 时, dequeueReusableCellWithIdentifier 无法取回我需
我有一个使用 NSLayoutConstraints 的自定义/子类 UITableViewCell。最左边的 UIImageView 可能填充也可能不填充图像,如果没有,则此字段右侧的对象自然会向左
我有一个最初加载一个自定义单元格的 tableView。该单元格有一个文本字段和一个用户可以修改的段控件。还有一个添加单元格按钮,如果按下该按钮,则会在前一个单元格下方添加另一个自定义单元格。用户最多
我有一个核心数据支持的 TableView ,它显示了一个可编辑字段列表,对于不同的字段类型,我有不同的 UTableViewCells 和不同的单元格标识符。当我在模拟器中滚动得太快或试图“弹”过最
我使用几乎每个人都用来处理 cellForRowAtIndexPath 的“著名”样板代码: UITableViewCell *cell = [tableView dequeueReusableCel
=> Demo Project @ GitHub Int { return 0 } 但随后应用程序崩溃了 -[UITableViewDataSource tableView:viewForFoo
我的 UITableView 有问题。当 UIViewController 结束加载 UITableViewCell 时,第一次加载大约需要 4 秒 6 秒。当我再次调用我的 UIViewContro
如果 dequeueReusableCellWithIdentifier 在单元格离开屏幕后重新使用它们,这是否意味着在单元格上设置的实例变量将由于其新用法而被覆盖? 例如,如果我要在实例变量中缓存单
我在想 - dequeueReusableCellWithIdentifier 仍然必须实例化一个新单元格,并且根据实例化单元格的尺寸,它必须重新计算布局。那么这种出列实际上有什么帮助呢? 最佳答案
我对 dequeueReusableCellWithIdentifier 方法的使用及其工作原理有点困惑。我目前有一个 searchBar 和两个可变数组(比如 filteredTableData 和
我是一名优秀的程序员,十分优秀!