• AlertView动画


    AlertView动画

    效果

    源码

    https://github.com/YouXianMing/Animations

    //
    //  AbstractAlertView.h
    //  Animations
    //
    //  Created by YouXianMing on 16/1/2.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
    @class AbstractAlertView;
    
    @protocol AbstractAlertViewDelegate <NSObject>
    
    /**
     *  The AlertView's event.
     *
     *  @param alertView The AlertViewProtocol object.
     *  @param event     Event data.
     *  @param index     Event index.
     */
    - (void)alertView:(AbstractAlertView *)alertView data:(id)data atIndex:(NSInteger)index;
    
    @end
    
    @interface AbstractAlertView : UIView
    
    /**
     *  The AlertView event delegate.
     */
    @property (nonatomic, weak)   id <AbstractAlertViewDelegate> delegate;
    
    /**
     *  The title, default is nil.
     */
    @property (nonatomic, strong) NSString  *title;
    
    /**
     *  The subtitle, default is nil.
     */
    @property (nonatomic, strong) NSString  *subTitle;
    
    /**
     *  The message, default is nil.
     */
    @property (nonatomic, strong) NSString  *message;
    
    /**
     *  Button's title array, default is nil.
     */
    @property (nonatomic, strong) NSArray   <NSString *>  *buttonsTitle;
    
    /**
     *  The contentView.
     */
    @property (nonatomic, weak)   UIView    *contentView;
    
    /**
     *  Auto hiden or not, default is NO.
     */
    @property (nonatomic)         BOOL       autoHiden;
    
    /**
     *  If The autoHiden is YES, you should set the delay hiden duration, default is 2.0.
     */
    @property (nonatomic)         NSTimeInterval    delayAutoHidenDuration;
    
    /**
     *  Show the AlertView.
     */
    - (void)show;
    
    /**
     *  Hide the AlertView.
     */
    - (void)hide;
    
    /**
     *  Store View with key.
     *
     *  @param view View.
     *  @param key  Key.
     */
    - (void)setView:(UIView *)view ForKey:(NSString *)key;
    
    /**
     *  Get View with key.
     *
     *  @param key Key.
     *
     *  @return View.
     */
    - (UIView *)viewWithKey:(NSString *)key;
    
    @end
    //
    //  AbstractAlertView.m
    //  Animations
    //
    //  Created by YouXianMing on 16/1/2.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import "AbstractAlertView.h"
    
    
    @interface AbstractAlertView ()
    
    @property (nonatomic, strong) NSMapTable  *mapTable;
    
    @end
    
    @implementation AbstractAlertView
    
    - (instancetype)init {
        
        if (self = [super init]) {
            
            self.delayAutoHidenDuration = 2.f;
            self.autoHiden              = NO;
            self.mapTable               = [NSMapTable strongToWeakObjectsMapTable];
        }
        
        return self;
    }
    
    - (void)show {
        
        [NSException raise:@"AlertViewProtocol"
                    format:@"Cannot use show method from subclass."];
    }
    
    - (void)hide {
        
        [NSException raise:@"AlertViewProtocol"
                    format:@"Cannot use hide method from subclass."];
    }
    
    - (void)setView:(UIView *)view ForKey:(NSString *)key {
    
        [self.mapTable setObject:view forKey:key];
    }
    
    - (UIView *)viewWithKey:(NSString *)key {
    
        return [self.mapTable objectForKey:key];
    }
    
    @end

    细节

    动画效果是基于一个抽象的基类实现的。

  • 相关阅读:
    HNOI 越狱
    中国剩余定理详解
    洛谷P1133 教主的花园
    poj2728 Desert King
    bzoj1503 郁闷的出纳员
    Code Forces 698A Vacations
    Loj 10211 sumdiv
    noip2010 乌龟棋
    洛谷P4141消失之物
    Code Forces 543A Writing Code
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/5094308.html
Copyright © 2020-2023  润新知