从几天开始,我尝试制作UITextView
width
和height
为fixed
的{{1}}。而作为用户类型,其内容大小会增加。因此,线不会中断。
用户感觉他正在输入一行。
如果他水平滚动,那么他可以滚动content
UITextView
,而不是录制UITextView
。
我正在使用这段代码来实现这个目标:
- (void)viewDidAppear:(BOOL)animated
{
UITextView *txtView = [[UITextView alloc]initWithFrame:CGRectMake(10, 100, 200, 50)];
txtView.text = @"Hello";
txtView.backgroundColor = [UIColor redColor];
txtView.delegate = self;
[txtView setFont:[UIFont fontWithName:@"ArialMT" size:40]];
txtView.contentSize =txtView.frame.size;
[self.view addSubview:txtView];
}
//Delegate method
-(void)textViewDidChange:(UITextView *)tView
{
if (tView.text.length > 8) {
// Set some higher width of the text view content size.
tView.contentSize = CGSizeMake(200.0f, tView.frame.size.height);
}
}
但它似乎不起作用。当我到达最后时,我的光标移动到下一行。
我在Google和SO中搜索过。
查找这些链接,但它们似乎不起作用。
答案 0 :(得分:0)
请勿使用member_hook
,而应使用UITextView
,并将行设置为1。
答案 1 :(得分:0)
要使UITextView
水平滚动,您需要指定其contentsize
宽度大于其框架。
_textView.contentSize=CGSizeMake(500, 20);
另外,请确保约束textview
宽度和高度,就像对普通scrollView
一样。
限制textview中的行数:
_textView.textContainer.maximumNumberOfLines=1;
但是如果你想让textView
一行,那么你应该在UITextView
中使用scrollView
。为了使其更简单,请在UITextField
中使用scrollView
。