UITextView - 禁用垂直滚动

时间:2011-08-23 00:21:03

标签: iphone ios ipad uitextview

如何在UITextView中禁用垂直滚动?我希望它基本上只是水平滚动。

7 个答案:

答案 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)

您可以从Xcode -

更改它

Click here

答案 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