显示 UIImage 的 Touch On Highlight

Posted

技术标签:

【中文标题】显示 UIImage 的 Touch On Highlight【英文标题】:Shows Touch On Highlight for UIImage 【发布时间】:2013-02-28 07:43:38 【问题描述】:

UIButton 有一个很酷的属性,叫做“Shows Touch On Highlight”,它允许我告诉用户“你触摸了这个按钮”。

有什么方法可以为 UIImage 实现这个吗?我希望用户看到 UIImage 内部触摸的点。

【问题讨论】:

你不能只使用图片大小的 UIButton 并将图片分配给自定义按钮吗? 【参考方案1】:

如果你使用了一个小技巧。在 UIImageView 上方制作一个透明按钮。所以必须设置一个 UIImageView userInteractionEnabled true bec default false。如下:

imageView.userInteractionEnabled = YES;
UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom];
clearButton.frame = imageView.frame;
clearButton.showsTouchWhenHighlighted = YES;
[clearButton setBackgroundColor:[UIColor clearColor]];
[imageView addSubView:clearButton];

其他技巧,创建一个透明按钮,然后设置您想要的图像。

UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom];
clearButton.frame = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>);
clearButton.showsTouchWhenHighlighted = YES;
[clearButton setImage:[UIImage imageNamed:@"your_image"] forState:UIControlStateNormal];
[clearButton setBackgroundColor:[UIColor clearColor]];

【讨论】:

我不会失去与 UIImage 的交互吗? 现在我将在 UIImage 中触摸的部分涂成红色 上面的代码你运行了吗?我想你不会有问题的。【参考方案2】:

不,它与UIButton 中的方式不同,但您可以使用自定义类型的UIButton 来为您解决。

UIImageView 的另一个帮助是设置它的高亮图像,但您仍然需要为效果工作。

【讨论】:

以上是关于显示 UIImage 的 Touch On Highlight的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 保持突出显示是不是违反 HIG?

在 Cocoa Touch 中隐藏 UIImageView

Sencha touch 2.4 appLoadingIndicator stack on android 2.3

markdown AppCompatButton具有Ripple效果和Touch on Touch

获取 UIImageView 中 pan On UIImage 的像素位置

如何使 on_touch_down 小部件具体化?