iPhone - 设置TextView文本时的heightForRowAtIndexPath滚动问题

时间:2011-02-10 18:49:39

标签: iphone uitableview scroll uitextview

我遇到了tableview和自定义单元格的问题。

我有以下代码:

- (void)viewDidLoad {
    [super viewDidLoad];
}

// =================================================================================================
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 1;
}

// =================================================================================================
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return 1;
}

// =================================================================================================
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"MyCustomCell";

    MyCustomCell *cell = (MyCustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        UIViewController *c = [[UIViewController alloc] initWithNibName:CellIdentifier bundle:nil];
        cell = (MyCustomCell*)c.view;
        [c release];
    }

    return cell;
}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

    MyCustomCell* theCell = (MyCustomCell*)cell;

theCell.theTextView.text = @"Label My Label";
}

// =================================================================================================
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 100; // -- In fact it's dynamic
}

使用该代码,我在模拟器上有一个奇怪的行为(iOS 4.2)。 我只有一个单元格(分组tableview)。当我滚动列表以使单元格在屏幕顶部消失时,然后当我释放它时,而不是仅仅平滑地向下滚动,列表突然重新出现在屏幕上,好像我从未滚动它然后滚动一点点(大约25px,实际上是我的TextView的顶部)到顶部。

如果我删除或评论theCell.theTextView.text = @“Label My Label”;那么列表就像往常一样没有问题。如果我只向上滚动一点,那么问题就不存在,因此细胞不会消失。如果我有很多行并让第一个单元格超过顶部,问题就是一样。

TextView位于UITableCellView内部,textview足够大,可以将texte显示为单行文本。

你能看出问题出在哪里吗?

如果您没有答案,请发表评论以询问其他信息或仅提出建议,让其他人看到此问题尚无答案。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题在于"滚动已启用"未设置TextView的属性。将此属性设置为" ON"而问题已经消失......