【问题标题】:Is it possible to make a UILabel editable in swift?是否可以快速编辑 UILabel ?
【发布时间】:2021-02-19 23:42:55
【问题描述】:

我希望我的用户能够在我的应用程序中编辑 UIlabel,类似于单击 UITextView 时会弹出键盘来编辑文本的方式。我想使用UILabel 而不是UITextView,因为我需要能够隐藏此视图,而且似乎无法隐藏UITextView。我也尝试过使用UITextField,但这也不起作用,因为我需要包装内容。

【问题讨论】:

  • 你可以添加一个点击手势识别器并呈现一个带有 UITextField 的 UIAlertController。不要忘记启用user interaction
  • 有几种方法。但更深层次的问题是为什么? UITextViews 就是因为这个原因而存在的,而 UILabels 是因为 只是 而不同的——具体原因。因此,您的问题很模糊。我猜您已经知道打开(和关闭)键盘以进行文本输入是多么简单。也许你甚至可以将这样的文本条目移动到可以被格式化的标签中?不直接编辑?这就是您的问题含糊不清的地方。
  • @dfd 我试图使用UITextView 来解决我的问题,但是我需要能够隐藏视图,而 textview 无法做到这一点。我还想要一个包含视图来调整标签的大小,而文本视图又不会这样做。
  • @leodabus 我正在使用点击手势识别器,可能需要使用某种动画师才能让它工作。我想避免使用警报视图来使应用更加无缝
  • 我想删除我的反对票,但如果没有您的编辑,我就不能。对该编辑的建议?您的问题中没有详细说明有关隐藏此视图的任何信息。也不使用容器视图。 (我并不是说没有你正在尝试就可以完成 - 但我可能会说你的问题表明什么是模糊的,因此无法重现。)

标签: swift uilabel uitextview


【解决方案1】:

是否可以在 swift 中使 UILabel 可编辑?

不是直接的;您必须将其替换为支持编辑的对象。 UILabel 文档说,就在顶部:

显示一行或多行信息文本的视图。

换句话说,UILabel 用于显示文本;那里没有任何支持编辑的东西。因此,如果您想让用户编辑标签的内容,您必须暂时将标签替换为可编辑的对象,例如 UITextViewUITextField 或您自己创建的东西。

TL/DR:如果您为需要可编辑的文本使用标签,那么您可能使用了错误的工具来完成这项工作。

我想使用 UILabel 而不是 UITextView,因为我需要能够隐藏此视图,而且似乎无法隐藏 UITextView。

我不知道你为什么这么说; UITextViewUIView 的子类,因此它与其他所有视图一样具有hidden 属性。还有一个alpha 属性并没有隐藏视图,而是使其透明,但在某些情况下它可能仍然有用。如果前两个由于某种原因不起作用,另一种选择是通过将视图从视图图中删除来“隐藏”视图。但只需设置 hidden 属性就足够了。

【讨论】:

    【解决方案2】:

    您可以从 textField 输入文本,然后在标签中显示结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多