自己做的网站能放到网上么,免费推广app,惠州建设网站开发,网站建设平台官网我们知道#xff0c;在IOS中UIButton UIControl都有一个默认的选中效果#xff0c;即点中后会图标会变暗#xff0c;移开后又恢复正常。如何让UIView UIImageView等这些普通的view也实现同样的效果呢#xff1f; 最近的一个项目里面#xff0c;需要实现一个类似iPad/iPhon… 我们知道在IOS中UIButton UIControl都有一个默认的选中效果即点中后会图标会变暗移开后又恢复正常。如何让UIView UIImageView等这些普通的view也实现同样的效果呢 最近的一个项目里面需要实现一个类似iPad/iPhone的主界面效果但是不同的是每个item里面显示图片的都必须是UIImageView因为icon的图片是从服务端异步下载下来的。而iPad的主界面里面显示图片的载体应该是一个Button已经自带着重效果了。现在的任务是实现UIImageView的阴影着重效果。 其实要实现只需往Item(item UIImageView UILabel)添加三个touch事件 [item addTarget:self action:selector(itemTouchedUpInside:) forControlEvents:UIControlEventTouchUpInside];
[item addTarget:self action:selector(itemTouchedUpOutside:) forControlEvents:UIControlEventTouchUpOutside];
[item addTarget:self action:selector(itemTouchedDown:) forControlEvents:UIControlEventTouchDown]; [item addTarget:self action:selector(itemTouchedCancel:) forControlEvents:UIControlEventTouchCancel]; 下面我们用改变UImageView的alph透明度来代替阴影着重效果。阴影着重效果很简单但点击的时候覆盖一层黑色的半透明的View的即可而代码的位置也跟setAlpha:的位置相对应。 -(void)itemTouchedUpOutside:(MyLauncherItem *)item {item.imagView.alpha 1;
}
-(void)itemTouchedDown:(MyLauncherItem *)item {item.imageView,alpha 0.5;
}
- (void)itemTouchedUpInside:(MyLauncherItem *)item {item.imageView.alpha 1;
} - (void)itemTouchedCancel:(MyLauncherItem *)item {item.imageView.alpha 1;
} 其中只有touchDown才降低alhpa值其他两个事件都是用来恢复到原先状态的。当我们触摸item时首先被响应的是touchDown事件然后接下来响应的是touchUpInside还是touchUpOuside要取决于手指是否移动了。增加touchCancel处理是因为有时会出现按钮按下后恢复不了原状的情况特别是在暴力测试情况下下用多跟手指同时滑动图标。 以上就是大体思路。若觉得着重的时间太短可以在touchUpInside里面写个GDB的dispatch_after延时处理操作一半只要延时0.05秒最有效果就不错了。 我的办法比较土如果有更好的方法可以留言交流一下。转载于:https://www.cnblogs.com/wengzilin/p/3301862.html