当选择器操作推送新的UIViewController时,UIButton不显示突出显示

问题描述:

我有一个iPhone/iOS应用程序,其中存在UIButtons(纯文本标签;没有使用自定义图形),当按下时将新UIViewController UINavigationController堆栈。当选择器操作推送新的UIViewController时,UIButton不显示突出显示

这些按钮间接显示在UIScrollView;它们都直接在另一个在运行时构造的UIView上,然后将这个UIView添加到UIScrollView中。

问题:当用户按下这些按钮中的一个,在大多数情况下,该按钮不会显示为高亮,虽然正确采取动作(适当的视图控制器被压入堆栈)。

如果我将按键检测设置为使用TouchUpInside而不是TouchDown,那么如果用户按住按钮一小会儿(半秒钟,也许?),按钮会显示为突出显示,但使用TouchDown很少突出显示,无论如何,即使用户只是轻按按钮,我也希望突出显示。

我已经研究过这个网站和其他人的答案,并尝试了各种方法,我发现建议用于解决类似问题..最可能的答案似乎是设置UIScrollView的“delaysContentTouches”属性为NO,但这在我的应用程序中没有发现明显的差异。事实上,我没有找到满意的答案来回答这个问题。

任何想法?...

是,延迟是由UIScrollView中试图检测滚动姿态造成的,是的,你可以通过设置delaysContentTouches为NO解决它。此外,你应该总是使用UIControlEventTouchUpInside而不是UIControlEventTouchDown与UIButton的,因为这使用户可以通过拖动手指从按钮越远“改变主意”。

+0

感谢Costique..thats解决了我的问题.. :) – 2013-04-10 06:11:32