我有一个UITableView
有一大堆定制UITableViewCells
在里面。这些中的每一个UITableViewCells
has a UITextView
在他们中。
我遇到的问题是,如果用户触摸UITextView
,它成为第一个响应者并且键盘弹出。如果用户然后向下滚动到UITableViewCell
第一个响应者已打开,但不再出现在屏幕上,我无法访问UITextView
驳回它。
我尝试保留(并保留)对UITextView
,但是一旦它离开屏幕并且我尝试访问它,我就会得到一个EXC_BAD_ACCESS
。无论我保留它多少次,这种情况都会发生,所以我怀疑它可能直接调用了 dealloc (我不确定单元出队系统实际上是如何工作的)。
另一个奇怪的事情是,如果我滚动UITextField
在屏幕外,键盘仍然可以用来写入,并且当我滚动回屏幕时,键入的文本是可见的UITextField
.
任何帮助将非常感激。
Fluchtpunkt 是绝对正确的,我没有正确地重复使用我的细胞。我的问题是我使用以下方法从笔尖加载自定义 UITableViewCells:
static NSString *CellIdentifier = @"CustomCell";
ExpandingTableViewCell *cell = (ExpandingTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ExpandingTableViewCell" owner:self options:nil];
cell = (ExpandingTableViewCell *)[nib objectAtIndex:0];
}
我没有意识到我必须将 .xib 文件中的自定义单元格的标识符字段设置为 CustomCell。一旦我的单元格被正确地重新使用,UITextField 在其时间之前被释放的问题就消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)