iPhone - проблема с прокруткой heightForRowAtIndexPath при установке текста в TextView - PullRequest
0 голосов
/ 10 февраля 2011

У меня проблема с таблицей и пользовательской ячейкой.

У меня есть следующий код:

- (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
}

При использовании этого кода на симуляторе происходит странное поведение (iOS4,2).У меня есть только одна ячейка (сгруппированный просмотр таблицы).Когда я прокручиваю список, чтобы ячейка исчезла в верхней части экрана, а затем, когда я отпускаю ее, вместо простой прокрутки вниз, список внезапно появляется на экране, как будто я никогда не прокручивал его, а затем прокручиваюнемного (около 25 пикселей, на самом деле вверху моего TextView) наверх.

Если я удалю или прокомментирую theCell.theTextView.text = @ "Label My Label";тогда нет проблем, и список работает как обычно.Проблема не существует, если я прокручиваю немного вверх, чтобы ячейка не исчезала.Проблема та же, если у меня много строк, и первая ячейка пересекает верх.

TextView находится внутри UITableCellView, а текстовое представление достаточно велико, чтобы отображать текст в виде однострочного текста.

Можете ли вы увидеть, в чем проблема?

Пожалуйста, просто прокомментируйте, чтобы попросить дополнительную информацию или просто предложения, если у вас нет ответа, чтобы другие люди увидели, что еще нетответьте на этот вопрос.

Спасибо за помощь.

1 Ответ

0 голосов
/ 11 февраля 2011

Проблема заключалась в том, что свойство «Прокрутка включена» TextView не было установлено.Если для этого свойства задано значение «ON», и проблема исчезла ...

...