UITextView – 禁用垂直滚动

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

在某些情况下,当试图限制不需要的UITextView滚动时,我发现将以下内容添加到UITextView委托(这是一个UIScrollView委托方法,当然,UITextViewinheritance自UIScrollView)是有帮助的。 这可能适合你。

- (void)scrollViewDidScroll:(id)scrollView { CGPoint origin = [scrollView contentOffset]; [scrollView setContentOffset:CGPointMake(origin.x, 0.0)]; } 

什么scrollEnabled属性? 将scrollEnabled属性设置为NO会阻止用户滚动(双向),但是在某些情况下,系统会将setContentOffset:animated:消息发送到UITextView。 scrollEnabled属性适用于垂直和水平滚动。 鉴于你的问题,你可能想保持scrollEnabled原样。

你可以改变它从Xcode –

点击这里

对于swift 4.0 textview垂直滚动closures

 func scrollViewDidScroll(_ scrollView: UIScrollView) { let origin: CGPoint = scrollView.contentOffset scrollView.contentOffset = CGPoint(x: origin.x, y: 0.0) } 

为什么不使用UITextField,如果你不想垂直滚动?

只需将contentSize设置为视图的高度。

你会使用这个:

 CGSize scrollableSize = CGSizeMake(widthOfContent, heightOfView); [myScrollView setContentSize:scrollableSize]; 

如果您有自定义的textView子类,则可以覆盖-gestureRecognizerShouldBegin以禁用滚动。

 -(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { if (gestureRecognizer.view == self) { return NO; } else { return [super gestureRecognizerShouldBegin: gestureRecognizer]; } } } 

把你的UITextView放在一个UIScrollView中。 将您的UITextView.frame设置为一个大小的整个文本适合行,并将ScrollView的contenSize设置为您的UITextView.frame的大小。

干杯nettz