POP弹性动画效果

1.中间的彩色按钮是用POP做的弹性动画依次下落到指定位置,并有弹簧效果2.彩色Button为自定义button 3.透明背景为自定义window,在modal情况下,覆盖的控制器会被移除,在dismiss时重新添加,因此改为添加一个新的窗口;4.在移除动画时,用block回调,执行按钮点击后的操作#import "ZHPublicView.h"#i
摘要由CSDN通过智能技术生成

1.中间的彩色按钮是用POP做的弹性动画依次下落到指定位置,并有弹簧效果

2.彩色Button为自定义button 

3.透明背景为自定义window,在modal情况下,覆盖的控制器会被移除,在dismiss时重新添加,因此改为添加一个新的窗口;

4.在移除动画时,用block回调,执行按钮点击后的操作


#import "ZHPublicView.h"

#import <POP.h>

#import "ZHbutton.h"



@implementation ZHPublicView


//点击底部加号按钮,对外接口方法

+(void)show{


     UIView *publicView = [[[NSBundle mainBundle]loadNibNamed:NSStringFromClass(self) owner:nil options:nil]firstObject];

    publicView.frame = window_.bounds;

    [window_ addSubview:publicView];

}

static UIWindow *window_;

//一次性操作

-(void)awakeFromNib{

    

    window_ = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

    window_.backgroundColor = [[UIColor whiteColor]colorWithAlphaComponent:0.8];

    window_.hidden = NO;

    self.userInteractionEnabled = NO;

    [self setUptext];

    [self addAllChildButton];



}

//添加子控件,图片为本地bundle图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter提供了一个很好的动画框架,可以轻松地自定义任何动画效果。要自定义pop动画,可以使用`PageRouteBuilder`类来创建自定义路由。 下面是一个示例: ```dart class CustomPageRoute<T> extends PageRoute<T> { CustomPageRoute({ @required this.builder, this.transitionDuration = const Duration(milliseconds: 500), this.opaque = true, this.barrierDismissible = false, this.barrierColor, this.barrierLabel, this.maintainState = true, }); final WidgetBuilder builder; @override final Duration transitionDuration; @override final bool opaque; @override final bool barrierDismissible; @override final Color barrierColor; @override final String barrierLabel; @override final bool maintainState; @override Widget buildPage(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation) { return builder(context); } @override Widget buildTransitions(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child) { return SlideTransition( position: Tween<Offset>( begin: Offset(0.0, 1.0), end: Offset.zero, ).animate(animation), child: child, ); } } ``` 这里我们创建了一个`CustomPageRoute`类,它继承自`PageRoute`,并重写了`buildTransitions`方法来定义我们的自定义动画效果。在这个例子中,我们使用`SlideTransition`来实现一个从底部向上滑动的动画效果。你可以根据需要替换为其他动画效果。 使用自定义动画时,可以使用`Navigator.push`来打开路由: ```dart Navigator.push(context, CustomPageRoute(builder: (context) => NextPage())); ``` 这将打开一个名为`NextPage`的路由,并使用我们定义的自定义动画效果进行过渡。同样,你可以使用`Navigator.pop`来关闭当前路由: ```dart Navigator.pop(context); ``` 希望这个例子能帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值