【问题标题】:UIButton not showing highlight when selector action is to push a new UIViewControllerUIButton在选择器操作推动新UIViewController时没有显示突出显示
【发布时间】:2011-06-18 19:20:26
【问题描述】:

我有一个 iPhone / iOS 应用程序,其中存在 UIButtons(纯文本,带有文本标签;不使用自定义图形),按下时会将新的 UIViewController 推送到 UINavigationController 堆栈上。

按钮间接出现在 UIScrollView 上;都是直接在另一个UIView上,在运行时构造,然后把这个UIView添加到UIScrollView中。

问题:当用户按下其中一个按钮时,在大多数情况下,尽管采取了正确的操作(正确的视图控制器被压入堆栈),但按钮不会显示为突出显示。

如果我将按下检测设置为使用 TouchUpInside 而不是 TouchDown,那么如果用户按住按钮短时间(可能是半秒?)按钮显示为突出显示,但使用 TouchDown 它很少突出显示,并且无论如何,即使用户只是轻轻点击按钮,我也希望高亮显示出来。

我已经研究了这个网站和其他网站的答案,并尝试了我发现的各种方法来解决类似问题。最可能的答案似乎是将 UIScrollView 的“delaysContentTouches”属性设置为 NO,但这在我的申请中没有明显的区别。事实上,我发现没有任何东西可以令人满意地回答这个问题。

有什么想法吗?...

【问题讨论】:

    标签: iphone ios uiscrollview uibutton highlight


    【解决方案1】:

    是的,延迟是由 UIScrollView 试图检测滚动手势引起的,是的,您可以通过将delaysContentTouches 设置为 NO 来解决它。此外,您应该始终使用UIControlEventTouchUpInside 而不是UIControlEventTouchDown 与 UIButton,因为这允许用户通过将手指拖离按钮更远来“改变主意”。

    【讨论】:

      猜你喜欢
      • 2013-10-15
      • 2015-07-21
      • 2019-11-30
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      相关资源
      最近更新 更多