• 状态栏动画切换效果


    状态栏动画切换效果

    效果

    源码

    https://github.com/YouXianMing/iOS-Project-Examples 中的 StatusBarAnimation

    //
    //  StatusBarValue.h
    //  StatusBarAnimation
    //
    //  Created by YouXianMing on 16/7/18.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
    
    @interface StatusBarValue : NSObject
    
    @property (nonatomic, weak) UIViewController *controller;
    
    /**
     *  Default value is UIStatusBarAnimationFade.
     */
    @property (nonatomic) UIStatusBarAnimation animationType;
    
    /**
     *  Default value is UIStatusBarStyleDefault.
     */
    @property (nonatomic) UIStatusBarStyle     style;
    
    /**
     *  Default value is NO.
     */
    @property (nonatomic) BOOL                 hidden;
    
    /**
     *  SetNeedsStatusBarAppearanceUpdate
     *
     *  @param animated Animated or not.
     *  @param duration Animation's duration.
     */
    - (void)statusBarAppearanceUpdateAnimated:(BOOL)animated duration:(NSTimeInterval)duration;
    
    #pragma mark - Constructor
    
    + (instancetype)statusBarValueWithController:(UIViewController *)controller;
    
    @end
    //
    //  StatusBarValue.m
    //  StatusBarAnimation
    //
    //  Created by YouXianMing on 16/7/18.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import "StatusBarValue.h"
    
    @implementation StatusBarValue
    
    - (instancetype)init {
        
        if (self = [super init]) {
        
            self.animationType = UIStatusBarAnimationFade;
            self.style         = UIStatusBarStyleDefault;
            self.hidden        = NO;
        }
        
        return self;
    }
    
    - (void)statusBarAppearanceUpdateAnimated:(BOOL)animated duration:(NSTimeInterval)duration {
    
        if (self.controller) {
            
            if (animated) {
             
                [UIView animateWithDuration:duration > 0 ? duration : 0.35f animations:^{
                    
                    [self.controller setNeedsStatusBarAppearanceUpdate];
                }];
                
            } else {
            
                [self.controller setNeedsStatusBarAppearanceUpdate];
            }
        }
    }
    
    + (instancetype)statusBarValueWithController:(UIViewController *)controller {
    
        StatusBarValue *value = [[[self class] alloc] init];
        value.controller      = controller;
        
        return value;
    }
    
    @end
  • 相关阅读:
    rgba()与opacity的区别
    BFC 和 margin collapse(重叠)
    CSS面试题整理
    HTML面试题整理
    box-sizing 和calc()
    怎样用一个标签制作多边框的按钮?
    github项目配置
    React之JSX
    angularjs指令系统系列课程(5):控制器controller
    angularjs指令系统系列课程(4):作用域Scope
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/5682770.html
Copyright © 2020-2023  润新知