很多用户提示 iPhone 上的小“i”信息按钮很难触摸。好吧,很简单——我只是在它后面贴了一个又大又隐形的按钮,即使你用最粗心的手指触摸也不会错过它,当你触摸它时,它就会执行 infoButtonAction。
事实是,我想让信息按钮本身闪烁大约 0.25 秒,只是为了提供视觉上的“这就是正在发生的事情”类型的反馈。我的意思是,我已经假设您打算点击“i”按钮,所以我只是将其视为您确实点击了它。
我尝试了这个,但它不起作用:
UIImage* normalImage = [_infoButton imageForState:UIControlStateNormal];
UIImage* highlighted = [_infoButton imageForState:UIControlStateHighlighted];
_infoButton.highlighted = YES; // flash the button
[_infoButton setImage:highlighted forState:UIControlStateNormal];
[_infoButton setNeedsDisplay]; //* FIXME: No flash?!
[(AppDelegate*)[[UIApplication sharedApplication] delegate] infoTap]; // do the info action
_infoButton.highlighted = NO;
[_infoButton setImage:normalImage forState:UIControlStateNormal];
[_infoButton setNeedsDisplay];
关于如何获得我想要的行为有什么想法吗?
(我也愿意接受有关用户反馈的其他想法,但仍然好奇我会如何做到这一点。想象一下,相反,我有一个“游戏”/恶作剧,您可以在其中按“确定”按钮并“取消” “闪烁,反之亦然,或者同样愚蠢的东西。)
最佳答案
“i”按钮的大小应为 44x44(Apple 标准手指大小),这可以在 Interface Builder 中完成。
对于某些动画,我建议查看核心动画。
关于cocoa-touch - 如何以编程方式突出显示 UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/351919/