我正在关注this answer以更改我的UIButton的标题。总而言之,这就是我必须做的事情:
当用户触摸时,按钮标题开始变化。
在保持触摸时,它应该每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仍处于突出显示状态时显示标题。触摸时,标题完全不可见。
答案 0 :(得分:1)
如何在UIButton仍处于突出显示状态时显示标题。触摸时,标题完全不可见。
您的按钮是否配置为在触摸事件期间标题消失,而您的代码没有更改标题文字?那是没有代码改变标题它是否仍然消失?
我认为您的按钮需要重新绘制,请在更改标题文字后尝试调用[button setNeedsDisplay]
。