-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
..
//this cell is custom cell.
[cell.textview setContentOffset:CGPointZero animated:YES]; //did not work
..
}
////////////////
- (void)tableView:(UITableView *)tableView willDisplayCell:(CustomCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
..
[cell.textview setContentOffset:CGPointZero animated:YES]; //did not work
..
}
所有这些都没有效果。 textview滚动显示在底部。
我自己拿到了
解决方案。
- (void)tableView:(UITableView *)tableView willDisplayCell:(CouponCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
CGPoint bottomOffset = CGPointMake(0, cell.textview.frame.size.height - cell.textview.contentSize.height);
if (cell.textview.contentSize.height >= cell.textview.bounds.size.height) {
[cell.textview setContentOffset:bottomOffset animated:NO];
}else{
[cell.textview setContentOffset: CGPointMake(0,0) animated:NO];
}
}
滚动的位置由iOS内部设置(0,0)...也许。 所以设置减去 y值。
谢谢你的回答。 祝大家过得愉快!
答案 0 :(得分:0)
尝试不使用动画
[cell.textview setContentOffset:CGPointZero]
或添加动画块
[UIView animateWithDuration:0.5 animations:^{
[cell.textview setContentOffset:CGPointZero]
}];
希望这个帮助
答案 1 :(得分:0)
尝试使用以下代码:
[cell.textview scrollRangeToVisible:NSMakeRange(0, 0)];
OR
[cell.textview setContentOffset:CGPointZero animated:NO];
答案 2 :(得分:0)
这是一个运作良好的黑客。在cellForRow中,您禁用textView滚动。然后在viewDidAppear中找到包含textView的特定索引路径,并再次启用滚动。如果需要,可以从textView中删除填充:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:4 inSection:0];
FileInfoNotesTableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.notesTextView.scrollEnabled = YES;
//I cut the padding from the textview
cell.notesTextView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0);