我有一个包含三行的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)
}
我想知道必须有更简单的方法来做这样的事情
scrollRowToTop
api
任何线索如何实现我想要的?
答案 0 :(得分: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;
}
希望这个答案可以帮助你