OC Control Transitioning(转场动画)

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。

OC 项目底层框架(万能)

OC Control Transitioning(转场动画)下载链接

在这里插入图片描述

效果

在这里插入图片描述

使用

        [FHXViewController showVC:self withValue:[NSString new] withBlock:^(NSString * _Nonnull value) {
            NSLog(@"value = %@",value);
        }];

控制器的编写


#import "FHXViewController.h"

#define bgViewHeight 560

@interface FHXViewController ()<UIViewControllerTransitioningDelegate>
@property (nonatomic,strong) UIViewController *presentingVC;
@property (nonatomic,  copy) FHXViewControllerBlcok block;
@property (nonatomic,strong) NSString *value;

@property (nonatomic,strong) UIButton *bgBtn;
@property (nonatomic,strong) UIView   *bgView;

@end

@implementation FHXViewController

+(void)showVC:(UIViewController *)vc withValue:(NSString *)value withBlock:(FHXViewControllerBlcok)block{
    FHXViewController *FHXVC = [[FHXViewController alloc] init:block withValue:value];
    [FHXVC presentVC];
}

-(instancetype)init:(FHXViewControllerBlcok)block withValue:(NSString *)value{
    self = [super init];
    if (self) {
      self.value = value;
      self.block = block;
    }
    return self;
}

-(void)presentVC {
  //必须自身遵守代理才能够实现转场动画
  self.transitioningDelegate = self;
  self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
  self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
  self.presentingVC = [GetVC getRootViewController];
  [self.presentingVC presentViewController:self animated:YES completion:nil];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.bgBtn = [UIButton new];
    self.bgBtn.addTo(self.view).xywh(0, 0, Phone_Width, Phone_Height).bgColor([[UIColor blackColor] colorWithAlphaComponent:0.3]).onClick(^{
        self.block([NSString new]);
        [self dismissViewControllerAnimated:YES completion:nil];
    });
    
    self.bgView = [UIView new];
    self.bgView.addTo(self.bgBtn).borderRadius(5).bgColor([UIColor whiteColor]).xywh(0, Phone_Height-bgViewHeight, Phone_Width, bgViewHeight);
    
}

#pragma mark - UIViewControllerTransitioningDelegate
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {
  return [[ShopDetailTransitioning alloc] init];
}

- (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed {
  return [[ShopDetailTransitioning alloc] init];
}

@end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯汉栩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值