0

我有一个滚动视图,上面有 2 个 UITables。桌子上的一切都很好。两个表都不需要滚动。如果我打电话

[self.tableOne reloadData]; 当按下按钮时,它会起作用。但是当我在 UITextView 的委托方法中调用它时,它不会起作用。这是一些线程问题吗?或者是什么导致了这种奇怪的行为。

当用户按下每个单元格中的 UITextView 时,我想增加 TableCell 的大小。

我在这里添加了一个 NSLog 来确认这个方法被调用了。

 - (void)textViewDidBeginEditing:(UITextView *)textView 
{ 
theTableCellCurrentlyBeingEdited = textView.tag;
[self.tableOne reloadData];  
}

感动我注意到哪个单元格处于活动状态,并调用 reload table 以便我可以调整此单元格的高度

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath 
{   
if (theTableCellCurrentlyBeingEdited == indexPath.row)
{
    return 120;
}
else
{
    return TABLE_CELL_HEIGHT;
}
}

但是 heightForRowAtIndex 永远不会被调用。

我将 tableOnes 数据源和委托设置为 self。在我的 .h 中,我添加了

<UITextViewDelegate, UITableViewDelegate, UITableViewDataSource>

所以电话就到了。

任何人都可以给我一些关于出了什么问题的建议?

非常感谢,-代码

4

1 回答 1

0

首先。你在哪里调用textView的文本?您正在使用theTableCellCurrentlyBeingEdited = textView.tag; 并且标签不会给您输入的文本。您只是在更改单元格的标签,这不会改变单元格的视觉效果。

第二。为什么不打电话:

- (void)textViewDidChange:(UITextView *)textView

或者

- (void)textViewDidEndEditing:(UITextView *)textView

因此,在第一个委托方法中,您的单元格会更新您编写的每个字符,而在第二个中,您确定用户已在 textview 中完成写入?

于 2011-10-24T08:04:49.643 回答