прокрутите UITableViewCell к верхней части таблицы

ios uitableview swift2

64 просмотра

1 ответ

у меня есть tableView с тремя строками в нем, теперь я хочу переместить мой cell2 на вершину tableView, чтобы Cell1 стал полностью невидимым (за пределами tableView)

вот что я попробовал:

    func textViewDidBeginEditing(textView: UITextView) {

    let index = NSIndexPath(forItem: 1, inSection: 0)
    tableView.scrollToRowAtIndexPath(index, atScrollPosition: .Top, animated: true)

} 

выше ничего не сделал, может быть, я что-то там упускаю

Я также попробовал это:

    func textViewDidBeginEditing(textView: UITextView) {

    let cgpoint = CGPointMake(0, (CGFloat(-64 - (channelCellRowHeight )))) // channelCellRowHeight is the hight of my row which i want move outside the tableview so that cell2 can stay at top of tableview 
    // here cgpoint is not accurate  
    tableView.setContentOffset(cgpoint, animated: true)
  }

Интересно, должен быть более простой способ сделать это что-то вроде scrollRowToTopAPI

Любая подсказка, как я могу достичь того, что я хочу ??

Автор: remy boys Источник Размещён: 08.11.2019 11:32

Ответы (1)


1 плюс

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

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellText;
cellText = [dataArray objectAtIndex:indexPath.row];

UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];

NSAttributedString *attributedText =
[[NSAttributedString alloc]
 initWithString:cellText
 attributes:@
 {
 NSFontAttributeName: cellFont
 }];
CGRect rect = [attributedText boundingRectWithSize:CGSizeMake(tableView.bounds.size.width, CGFLOAT_MAX)
                                           options:NSStringDrawingUsesLineFragmentOrigin
                                           context:nil];
return rect.size.height;
}

Надеюсь, этот ответ поможет вам

Автор: sherif.Khaled Размещён: 20.08.2016 06:49
Вопросы из категории :
32x32