如何让TextView能够水平滚动

2023-11-22

我知道TextView嵌入在一个ScrollView。如果有一个相当长的String(其中不包含"\n")

The TextView会根据宽度自动换行TextView.

If TextView的高度很短,那么我们就可以垂直滚动它。 如何禁用自动换行?这样,如果没有遇到“\n”,则不会换行。相反,它允许用户水平滚动以查看文本。

我怎样才能实现这个?


我知道该怎么做在你们的帮助下:D,谢谢,我们开始吧!

1.所以,首先,我们需要一个 longlonglong 字符串,对吗?

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 "

2.假设我们有一个 UIScrollView,其链接为@IBOutlet或通过致电获得.viewWithTag(xxx).我们将其命名为scroll :

3.是时候获得size我们的字符串,这是我们将使用它的一个关键函数:

哦!我几乎忘记定义什么样的Font(这是一个至关重要的参数)我们将使用,什么是max-size我们字符串的大小

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)

4.好的,现在我们可以将字符串放入textView中,您需要以编程方式创建一个新的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

5.回到我们的scroll,我们将其设置为contentSize:

scroll.contentSize = CGSizeMake(size.width, size.height)

6.最后添加Subview:scroll.addSubview(textView)

你可以看到,textView 嵌入在一个scrollView 中,这使得它可以 向 2 个方向滚动。

顺便提一句。我的工具只是一个演示 静态字符串。如果你希望用户使用不会排队的textView 如果他不输入任何“\n”则换行,你可能需要动态计算 字符串大小。 :D

[我希望这个能帮上忙]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让TextView能够水平滚动 的相关文章

随机推荐

  • 如何解决这个问题:在 logcat -->> 加载 /system/media/audio/ui/Effect_Tick.ogg 时出错?

    我有个问题 error loading system media audio ui Effect Tick ogg 当我单击 navdraw 图标时会显示它 有人可以帮助我吗 这是 logcat 上的错误 04 20 01 42 11 24
  • 有没有办法在我的 WPF 应用程序中使用 ODTTF 字体文件?

    创建 XPS 文件时 它会将原始文档的字体子集化并混淆为 ODTTF 字体文件 并将它们捆绑在 XPS 文件中 这只是一个 zip 文件 因此很容易提取它们 我已提取其中一个 ODTTF 文件 并将其作为资源包含在我的 WPF 应用程序中
  • Scala的模式匹配是否违反了开闭原则?

    如果我添加一个新的案例类 这是否意味着我需要搜索所有模式匹配代码并找出需要在哪里处理新类 我最近一直在学习这门语言 当我读到一些支持和反对模式匹配的论点时 我对应该在哪里使用它感到困惑 请参阅以下内容 Pro Odersky1 and Od
  • Azure DocumentDb 错误“查询必须计算为 IEnumerable”

    我在尝试检索单个记录时尝试查询我的 Azure DocumentDb 存储帐户时遇到问题 这是我的 WebAPI 代码 Controller public AccountController ApiController other acti
  • 解压并读取杜高斯贝.bi5刻度文件

    我需要打开一个 bi5文件并阅读内容 长话短说 问题 我有数以万计的 bi5包含我需要解压缩和处理 读取 转储到 pandas 的时间序列数据的文件 我最终安装了Python 3 我通常使用2 7 专门用于lzma库 当我使用lzmaPyt
  • 单击链接时 InstantApp 未启动

    我的测试应用程序已在 Google Play alpha 中的测试封闭轨道中发布 但我也尝试过内部测试 得到相同的结果 修复缺少的默认 URL 后 它已经显示了 立即尝试 按钮 assetlinks json放置在我的服务器上的正确位置 应
  • 检查二叉树是否也是二叉搜索树的问题

    我正在尝试解决这个问题 但遇到了一些麻烦 在二叉搜索树 BST 中 某个节点的左子树中每个节点的数据值都小于该节点的数据值 节点右子树中每个节点的数据值都大于该节点的数据值 给定根节点 class Node int data Node le
  • 无法在 vscode 上调试 expo 项目

    我有一个 expo 项目 我们可以运行和构建它 并且它在 android 和 iOS 中都能正常工作 我想要的是使用我的 Visual Studio Code 调试所述项目 我遵循了一些指南并尝试了以下操作 在 vscode 中添加 Rea
  • C89 与 c99 GCC 编译器

    如果我使用 c89 与 c99 编译以下程序有什么区别吗 我得到相同的输出 两者真的有区别吗 include
  • 如何在 Roxygen2 中指示整理顺序?

    将 roxygen2 文档与 devtools 结合使用document函数自动生成一个Collate 包描述中的字段 无论是否需要按特定顺序加载包库文件 我正在开发一个包含一堆 S4 方法的包 并希望确保在使用它们的任何方法或其他类之前加
  • java.lang.NoClassDefFoundError: org/apache/spark/Logging

    我总是收到以下错误 有人可以帮助我吗 Exception in thread main java lang NoClassDefFoundError org apache spark Logging at java lang ClassLo
  • 如何将 NSManagedObject 转换为 NSDictionary

    我正在尝试转换NSManagedObject to NSDictionary这是我尝试过的 var keys NSArray order entity attributesByName keys var dict NSDictionary
  • 根据 R 中的前一行按序列分配值

    我有一个这样的数据表 ID1 ID2 member 1 a x parent 2 a y child 3 a z parent 4 a p child 5 a q child 6 b x parent 7 b z parent 8 b q
  • 将字符串转换为对象名称

    我需要这方面的帮助 如何将字符串转换为变量 对象 实例名称 因为我不知道如何对其进行分类 假设我的代码是 a b class Test def getKeys self var return var keys where var refer
  • 使用 Play 2.6 和 akka 流的 Websocket 代理

    我正在尝试使用 Play 和 akka 流为 Websocket 连接创建一个简单的代理 交通流向是这样的 Client request gt gt request Server Proxy Client response lt lt re
  • Xcode 13.2.1 预览版无法工作,但模拟器可以工作

    我的XcodeVersion 13 2 1 13C100 遇到未知问题 我做了几件事 比如删除 Xcode 新安装 Xcode 从备份恢复 没有做任何更改 目前 该项目可以在模拟器中构建和运行 但不能在预览窗口中构建和运行 它给出了一条消息
  • 如何在Delphi中使用CopyRect方法

    我正在从磁盘加载图像并希望将其 部分 复制到第二个 TImage Image1 Picture LoadFromFile S with Image1 Picture Bitmap do Image2 Canvas CopyRect Imag
  • PHP SQL注入

    这几天上网冲浪 了解了SQL INJECTION ATTACK 我试图在我的本地计算机上实现 以了解如何做到这一点 以便我可以在我的系统中阻止它 我写过这样的代码 PHP代码 if count POST gt 0 con mysql con
  • 如何在 SQL Server 中查询大于特定日期的所有日期?

    我想 SELECT FROM dbo March2010 A WHERE A Date gt 2010 04 01 A Date好像 2010 03 04 00 00 00 000 然而 这是行不通的 任何人都可以提供一个参考为什么吗 se
  • 如何让TextView能够水平滚动

    我知道TextView嵌入在一个ScrollView 如果有一个相当长的String 其中不包含 n The TextView会根据宽度自动换行TextView If TextView的高度很短 那么我们就可以垂直滚动它 如何禁用自动换行