Mic*_*oos 9 uiscrollview uitextview ios swift
我知道TextView它嵌入了一个ScrollView.如果有一个相当长的String(其中包含否"\n")
在TextView将自动进行线缠绕,根据的的宽度TextView.
如果TextView高度很短,那么我们可以垂直滚动它.你如何禁用自动换行?这样,如果没有遇到"\n",它就不会换行.相反,它允许用户水平滚动以查看文本.
我该如何实现呢?
在你们的许多帮助下,我想出了如何做到这一点:D,谢谢,我们开始吧!
1.所以,首先,我们需要一个longlonglong String,对吧?
let displayStr = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 "
Run Code Online (Sandbox Code Playgroud)
2.假设我们有一个 UIScrollView,它@IBOutlet通过调用链接或获取.viewWithTag(xxx)。我们将其命名为scroll:
3.是时候获取我们的字符串的大小了,这是我们将使用的一个关键函数:
哦!我几乎忘记定义我们将使用的字体类型(这是一个关键参数),以及字符串大小的最大大小是多少
let maxSize = CGSizeMake(9999, 9999)
let font = UIFont(name: "Menlo", size: 16)!
//key function is coming!!!
let strSize = (displayStr as NSString).boundingRectWithSize(maxSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName : font], context: nil)
Run Code Online (Sandbox Code Playgroud)
4.好的,现在我们可以将字符串放入 textView 中,您需要以编程方式创建一个 new UITextView,以便我们可以定义与字符串大小相同的框架(哦,也许更大一点:D):
let frame = CGRectMake(0, 0, size.width+50, size.height+10)
let textView = UITextView(frame: frame)
textView.editable = false
textView.scrollEnabled = false//let textView becomes unScrollable
textView.font = font
textView.text = displayStr
Run Code Online (Sandbox Code Playgroud)
5.回到我们的scroll,我们将其设置为contentSize:
scroll.contentSize = CGSizeMake(size.width, size.height)
6.最后,添加Subview:
scroll.addSubview(textView)
你可以看到,textView 被嵌入在一个 scrollView 中,它允许它向 2 个方向滚动。
顺便说一句,我的实现只是静态字符串的演示。如果您希望用户使用不输入任何“\n”就不会换行的 textView,您可能需要动态计算字符串大小。:D
[我希望这个能帮上忙]
| 归档时间: |
|
| 查看次数: |
5945 次 |
| 最近记录: |