如何在UITextView中禁用垂直滚动?我希望它基本上只是水平滚动。
答案 0 :(得分:17)
在某些情况下,当我试图压制不需要的UITextView滚动时,我发现向UITextView委托添加类似下面的东西很有帮助(这是一个UIScrollView委托方法,当然,UITextView继承自UIScrollView)。这可能适合你。
- (void)scrollViewDidScroll:(id)scrollView
{
CGPoint origin = [scrollView contentOffset];
[scrollView setContentOffset:CGPointMake(origin.x, 0.0)];
}
scrollEnabled属性怎么样?将scrollEnabled属性设置为NO会阻止用户滚动(在两个方向上),但有时系统会向UITextView发送setContentOffset:animated:
消息。 scrollEnabled属性适用于垂直和水平滚动。鉴于您的问题,您可能希望保留scrollEnabled原样。
答案 1 :(得分:3)
答案 2 :(得分:2)
对于swift 4.0 textview垂直滚动
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let origin: CGPoint = scrollView.contentOffset
scrollView.contentOffset = CGPoint(x: origin.x, y: 0.0)
}
答案 3 :(得分:1)
如果你有自定义的textView子类,你可以覆盖-gestureRecognizerShouldBegin来禁用滚动。
<img src="jack.jpg">
答案 4 :(得分:0)
如果你不想垂直滚动,为什么不使用UITextField?
答案 5 :(得分:0)
只需将contentSize
设置为视图的高度即可。
你会用这个:
CGSize scrollableSize = CGSizeMake(widthOfContent, heightOfView);
[myScrollView setContentSize:scrollableSize];
答案 6 :(得分:-1)
将UITextView放在UIScrollView中。 将UITextView.frame设置为Size,将完整的Text放入Line中,并将ScrollView的contenSize设置为UITextView.frame的大小。
干杯 nettz