点击放大, 然后再点击缩小的按钮,伴随显隐效果

通常我们会需要这样的效果, 然后就会想到用一个按钮来做, 

假设我们需要在一个rect的位置响应点击事件, 然后在这里初始化一个按钮, 设置按钮的图片。 

按钮的superview上有一个图片,按钮本身又有一个图片。点击前按钮是不可见的, 当按钮从最大化显示完成后,再次点击将缩小到原来尺寸。

所以我们有以下方案:

1。 在响应点击事件的位置rect生成一个按钮, 并设定一个图片, 然后设置它的透明度或者hidden属性, 在点击事件中,判断当前是应该放大还是缩小,来完成整个过程。

但是在实际实现中,发现,如果设置透明度低于0.1时, 该按钮几乎就不可见了, 同时也响应不了点击事件, 更不用说把hidden设置成YES了。

但如果把透明度设置成0.1时, 用户没有点击时,会看到有一个0.1透明度的按钮在背景图上面, 看着不好,有种界面不干净的感觉。


所以我们需要采用方案2:

在rect生成一个按钮,  custom类型的,并且不设置图片, 这个时候它就是一个透明的,且可以响应点击的按钮。

在该按钮的响应方法中,生成一个新的按钮,让生成的按钮直接在rect位置放大至全屏,并使其alpha从0.0变成1.0, 并给这个新加的按钮添加点击事件,事件中添加移除新加按钮的操作,就完成该效果。

运行时发现,当按钮放大后,再次点击时,会有一个点下的效果(即变暗的效果), 可以设置按钮的adjustsImageWhenHighlighted属性为NO, 即可解决这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值