Sko*_*ota 2 uiscrollview uitextview ios
我已成功实现了UITextView一个UITableViewCell.我已经放入UITextField单元格并指定了约束,因此文本视图总是距离单元格的顶部和底部10个点(因此,当单元格大小增加时,文本视图也会增加):

我还包括以下代码(似乎是推荐的iOS 7方式)从文本视图中删除所有内容插入和填充:
expandingTextViewCell.textView.textContainer.lineFragmentPadding = 0;
expandingTextViewCell.textView.textContainerInset = UIEdgeInsetsZero;
Run Code Online (Sandbox Code Playgroud)
所有单元格高度都存储在一个-tableView:heightForRowAtIndexPath:查询数组中.我已经在-textViewDidChange:方法中实现了相关代码,以检查已在文本视图中键入的新文本,重新计算高度,更新数组,然后调用[tableView beginUpdates]并[tableView endUpdates]设置单元格高度更改的动画.这一切都有效,文本视图也调整大小(由于定义的约束):

但是,我无法解决一个问题.当输入足够的文本以导致单元格(和文本视图)展开时,文本视图似乎向上滚动 - 这会切断文本的第一行,并在文本视图的底部创建一个间隙:

您可以在上面的屏幕截图中看到问题.但是,如果我手动将文本视图滚动回到它的正确位置,那么一切都显示正常,我无法向下滚动文本视图以再次获得差距,这个差距现在已经消失:

我将不胜感激任何帮助摆脱细胞/文本视图扩展时出现的差距.从用户的角度来看,我只希望文本视图向下扩展/展开,之前键入的文本保留在原始位置.
我知道这个问题很老,但iOS 10中仍然存在同样的问题.
对类似问题的回答很有帮助:https://stackoverflow.com/a/42480403/7604418
您可以向UITextView添加一个类别以禁用内容偏移动画,并修复额外的底部偏移:
@implementation UITextView (Scroll)
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated {
[super setContentOffset:contentOffset animated:NO];
}
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |