如何在 iOS 中制作单行水平滚动 TextView
Posted
技术标签:
【中文标题】如何在 iOS 中制作单行水平滚动 TextView【英文标题】:How to make Single Line Horizontally Scolling UITextView in iOS 【发布时间】:2015-12-07 13:34:31 【问题描述】:从几天开始,我试图创建一个UITextView
,其中width
和height
是fixed
。并且随着用户类型其内容大小的增加。这样线路就不会断了。
用户感觉他正在输入一行。
如果他水平滚动,那么他可以滚动UITextView
的content
,而不是在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 And SO 中搜索过。
找到这些链接,但它们似乎不起作用。
Link 1Link 2
【问题讨论】:
你尝试将 textview 添加到 scrollview 吗? 【参考方案1】:不要使用UITextView
,而是使用UITextField
,行数设置为1。
【讨论】:
但是如果我输入额外的内容怎么办...我希望用户水平滑动并且内容滚动...我如何在TextField
中做到这一点
您可以尝试在文本字段中添加 UIGestureRecognizer 以对滑动做出反应
我该如何滚动内容...手势识别器是好的..但是如何滚动内容:(
将文本字段放在滚动视图中,滑动时移动内容偏移量。
制作一个 UIScrollView,将 textfield 放在它的内容视图中,当内容视图变大时更改内容视图大小,更改滚动视图的内容偏移量以滚动滚动视图(从而滚动文本字段)跨度>
【参考方案2】:
要使UITextView
水平滚动,您需要指定其contentsize
的宽度大于其框架。
_textView.contentSize=CGSizeMake(500, 20);
还要确保像普通的scrollView
一样限制textview
的宽度和高度。
限制文本视图中的行数:
_textView.textContainer.maximumNumberOfLines=1;
但是如果你想让textView
变成一行,那么你应该在scrollView
中使用UITextView
。为了更简单,请在scrollView
中使用UITextField
。
【讨论】:
以上是关于如何在 iOS 中制作单行水平滚动 TextView的主要内容,如果未能解决你的问题,请参考以下文章