我设置UITextView控件按照我的预期工作有问题。 我有类似的东西:
[textView.textContainer setMaximumNumberOfLines:3];
[tv.textContainer setLineBreakMode:NSLineBreakByWordWrapping];
[textView setUserInteractionEnabled:YES];
[textView setScrollEnabled:YES];
我的预期结果是具有默认1行高的可编辑文本视图。当我放置文本时,控件最多花费3行,之后我仍然可以写,但内容将在3行控件中滚动。
不幸的是,基于上面的代码,我无法得到这个结果。当我的控件有3行高度,并且我放了更多文本,然后我的光标消失了,我仍然可以写,但没有可能滚动输入的内容。
您是否有任何建议或提示如何实现UITextViewController的预期行为?
答案 0 :(得分:0)
继续我的评论之后,这里有一个例子,说明如何控制多少空间' UITextView
可以使用以及如何设置滚动以匹配:
UITextView* _textView = [UITextView new];
// other setup...
_textView.textContainerInset = UIEdgeInsetsMake(60, 5, 8, 5);
_textView.scrollIndicatorInsets = UIEdgeInsetsMake(52, 0, 0, 0);
在这个例子中,我让_textView
占用了它的所有父视图(使用自动布局约束,这相当于整个屏幕)。 E.g。
NSArray* constraints;
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_textView]|" options:0 metrics:nil views:views];
[self.view addConstraints:constraints];
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_textView]" options:0 metrics:nil views:views];
[self.view addConstraints:constraints];
我的屏幕顶部还有一个自定义工具栏,其高度为52
。 (自定义工具栏,而不是库存UINavigationBar
)。
因此,在这种情况下,我使用textContainerInset
属性来限制用于显示文本的文本视图部分:上边距最相关,我想清除{{1的高度从工具栏中,然后有一些额外的边距(8)。
此外,我使用52
使滚动指示符从顶部停止scrollIndicatorInsets
个单位(工具栏的大小)。
我不确切知道你的52
如何与你视图中的其他控件相符...但是,为了控制用于文本的空间量以及滚动如何与之一起工作,你需要做的不仅仅是:
textView
这有帮助吗?