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