显示 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?
Sencha touch 2.4 appLoadingIndicator stack on android 2.3
markdown AppCompatButton具有Ripple效果和Touch on Touch