您的位置:首页 > 其它

AlertView动画

2016-01-02 11:06 183 查看
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


细节

动画效果是基于一个抽象的基类实现的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: