以编程方式禁用水平滚动到UITextView
我正在寻找一种方法来禁用水平滚动的UITextView编程,这很容易通过接口生成器,但由于我devise的视图以编程方式,我无法find一种方法来做到这一点,我已经把它GOOGLE但是,我得到的最多的是这样的:
如何以编程方式停止水平滚动?
它不工作。 任何提示?
self.textViewOpenedRect = CGRectMake(20, 20, 280, 130); self.textView = [[UITextView alloc] initWithFrame: self.textViewOpenedRect]; self.textView.contentInset = UIEdgeInsetsMake(5, 5, 5, 5); self.textView.delegate = self; self.textView.backgroundColor = [UIColor clearColor]; self.textView.contentSize = CGSizeMake( self.textView.frame.size.height, self.textView.contentSize.height); self.textView.alwaysBounceHorizontal = NO; self.textView.bounces = NO;
更新:显然,问题是由于该行代码:
self.textView.contentInset = UIEdgeInsetsMake(5, 5, 5, 5);
我用这个框架和文本之间有一点空间。 。 .am我正确地做?
这应该有所帮助… UITextView
是UIScrollView
一个子类,所以这很容易实现。
mytextView.contentSize = CGSizeMake(mytextView.frame.size.height,mytextView.contentSize.height); mytextView.showsHorizontalScrollIndicator = NO;
只是在这里添加一点,即使在禁用水平滚动之后,“左右滚动的一小部分”也是由ContentInsets引起的。 以下禁用:
self.textView.contentInset = UIEdgeInsetsMake(5, 0, 5, 0);
自定义插入我发现我的最佳解决scheme是inheritanceUITextView,然后在layoutSubviews中调用以下代码。
-(void) layoutSubviews { // always keep content offset at x = 0 self.contentOffset = CGPointMake(0, self.contentOffset.y ); [super layoutSubviews]; }
希望这有助于某人。