cocoa-touch - 如何以编程方式突出显示 UIButton?

标签 cocoa-touch

很多用户提示 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/

相关文章:

cocoa-touch - UIAlertView按钮框架全为0?

iphone - 通过在表格 View 中选择一行来删除核心数据条目

ios - 如何在 View Controller 之外的类中创建 UI 元素

ios - 使用 reloadData 时如何执行单元格选择动画?

iphone - 从 NSMutableArray 下载时“for”循环崩溃

ios - 如何在 objective-c 中返回对象的 UIColor?

iphone - 显然我不知道如何写一个setter

iphone - 并加载 NIB/XIB 文件?

cocoa - 简化复杂的 Cocoa-Touch View Controller

iphone - 如何从格式和 va_list 中获取格式化的 NSString?