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

tjr*_*tjr 3 iphone highlight uibutton uiscrollview ios

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

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

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

如果我将按下检测设置为使用TouchUpInside而不是TouchDown,那么如果用户按住按钮一小段时间(可能是半秒?)按钮显示为突出显示,但使用TouchDown它很少突出显示,并且任何事件,即使用户只是轻轻按下按钮,我也希望突出显示.

我已经研究了这个网站和其他人的答案,并尝试了我发现建议用于解决类似问题的各种方法.最可能的答案似乎是为UIScrollView将"delaysContentTouches"属性设置为NO,但这没有可辨别的我的申请差异.实际上,我发现没有任何令人满意的回答这个问题.

有任何想法吗?...

Cos*_*que 13

是的,延迟是由UIScrollView尝试检测滚动手势引起的,是的,您可以通过设置delaysContentTouches为NO 来解决.此外,你应该总是使用UIControlEventTouchUpInside而不是UIControlEventTouchDown使用UIButton,因为这样可以让用户通过将手指拖离按钮来"改变主意".