简单抽屉效果,初学者请入内

10 篇文章 0 订阅

基本实现思路如下:

        先在控制器创建好想要弹出的自定义UIView,其位置放到屏幕 边界之外即可。(看不到就行),点击按钮后将方才的View的frame修成到屏幕可见位置,调用UIView动画使得过度自然即可。效果图如下,同时我们需要实现弹出后最左边的六分之一左右的变暗的效果(通过改变UIView透明度来实现)以及点击变暗区域将抽屉关闭的功能。这时我们需要借助点击手势UITapGestureRecognizer来实现。

 

A.首先,我们创建好需要弹出的抽屉视图(自定义UIView),以及覆盖在上面的透明度为0.5的一层灰色的view

adView = [[AdvanceSearchViewalloc]initWithFrame:CGRectMake(kWidth,0, kWidth,kHeight)];

    alphaView = [[UIViewalloc]initWithFrame:CGRectMake(0,0, kWidth,kHeight)];

    [self.viewaddSubview:alphaView];

   //创建一个点击事件,点击后回收抽屉!

    UITapGestureRecognizer *alphaTap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(Tap:)];

     alphaView.backgroundColor = [UIColorblackColor];

    alphaView.alpha =0;

    //此方法也可行,可以改变透明度

    //alphaView.backgroundColor = [[UIColor blueColor ]colorWithAlphaComponent:0.7f];

    [alphaViewaddGestureRecognizer:alphaTap];

B.其次实现当我们点击屏幕右上角一个按钮时弹出此抽屉视图,利用动画使得过度自然,此时改变自定义View透明度可以做出周围变暗的效果。

- (void)clickAdvanceSearch:(UIButton *)btn {

    

    [UIViewanimateWithDuration:0.5animations:^{

        adView.x =kWidth/6.0;

         alphaView.alpha =0.5;

    } completion:nil];

   

    NSLog(@"clickAdvanceSearch:");

}

C.最后当我们点击灰色区域时将触发回收抽屉的方法!!实现方法如下

- (void)Tap:(UITapGestureRecognizer *)tap {

    [UIViewanimateWithDuration:0.5animations:^{

        adView.x =kWidth;

        alphaView.alpha =0;

    } completion:nil];

    

    

}






  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值