【问题标题】:How to dynamically change UIButton title during Touch and Hold如何在触摸并按住期间动态更改 UIButton 标题
【发布时间】:2013-02-02 03:22:09
【问题描述】:

我正在关注this answer 来更改我的 UIButton 的标题。总而言之,这是我必须做的:

  1. 当用户按下时,按钮的标题开始改变。

  2. 按住触摸时,它应该每 1 秒改变一次,并且用户 应该可以看到的。

  3. 当用户触摸(停止触摸)时,按钮标题应固定为最后保持的值。

我使用setTitle:forState:处理1

我使用setTitle:forState: 处理 2。只要计时器在用户触摸后每 1 秒触发一次,这种情况就会一直发生。

我使用titleForState 处理 3。但是在这里我没有得到 2 中设置的值。 有时当我得到正确的值时,仍然存在一个问题:触摸结束后,我仍然在 UI 中看到那个自定义 UIButton 上的旧标题,而不是我使用 titleForState 读取的那个。 (就此而言,即使 UIButton.textLabel.text 给出了错误的值)

1 - 我是否遵循了正确的触摸和按住方法? (我的意思是使用描述的计时器方法来设置和读取 UIButton 标题)

2 - 如果是,我应该在代码中进行哪些更改才能读取正确的 UIButton 标题值?

编辑:

我摆脱了上面 3 中遇到的问题。问题的原因是:我在阅读和写作时没有提供相同的UIControlState 组合。我假设如果您提供UIControlStateNormal | UIControlStateHighlighted 用于编写标题,然后使用UIControlStateNormal 将其读回,它应该返回当前的标题值,反之亦然。不幸的是,事实并非如此。我更改了我的应用程序逻辑,以便我每次都只需要使用其中一种状态。

但是主要问题仍然存在(上面的 2) - 如何在 UIButton 仍处于突出显示状态时显示标题。按住触摸时标题完全不可见。

【问题讨论】:

  • 也许尝试用setTitleColor:forState:改变颜色标题?
  • 试过但没有成功。尝试设置红色以便它仍然可见,但没有看到 UI 的变化。

标签: iphone ios uibutton


【解决方案1】:

如何在 UIButton 仍处于突出显示状态时显示标题。按住触摸时标题完全不可见。

您的按钮是否配置为在触摸事件期间标题消失,而您的代码不会更改标题文本?那就是没有代码更改标题它仍然消失吗?

我认为您的按钮需要重绘,请在更改标题文本后尝试调用[button setNeedsDisplay]

【讨论】:

  • 我试过了,但还没有成功。此外,还尝试将其设置在情节提要中,但它根本停止更改(按下或未按下)。不知道这个的关键是什么,也许我需要覆盖 UIbutton 这对于我想要实现的功能来说有点矫枉过正。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多