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

细节

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

时间: 2024-11-05 18:52:52

AlertView动画的相关文章

代码运行顺序(部分)

///////当应用程序接在完成时触发- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    NSLog(@"%s",__FUNCTION__);    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    /

iOS开发——自定义AlertView

自定义的AlertView,可以选择出现的动画方式,特意做了几个可以对比.没啥难点,直接上代码,一看就懂. 1.在YYTAlertView.h文件中 // //  YYTAlertView.h //  Demo-自定义alertView // //  Created by yyt on 16/4/19. //  Copyright © 2016年 yyt. All rights reserved. // #import <UIKit/UIKit.h> typedef NS_ENUM(NSInt

关于系统动画执行重叠时产生的一些奇怪现象

当系统动画的执行时间相撞时会产生一些奇怪的现象,比如说两个界面同时push到另一个界面,push的动画时间产生了重叠,这时候导航栏的控件会重叠且崩溃. 再一个就是,当界面push的动画,和下一个界面alertView show的动画时间相撞,如果这时前一个界面的导航栏上添加了一个segmentControl控件,那么在两个动画相撞时,segmentControl的填充颜色会发生变化,我看到的是变成灰色,当再次点击segmentControl上的按钮时,填充色变正常.此时不会产生崩溃.

GitHub中最强大的iOS Notifications和AlertView框架,没有之一!

FFToast是一个非常强大的iOS message notifications和AlertView扩展.它可以很容易实现从屏幕顶部.屏幕底部和屏幕中间弹出一个通知.你可以很容易的自定义弹出的View.GitHub链接:https://github.com/imlifengfeng/FFToast 要求 支持iOS 8或更高版本 支持ARC 特点 简单易用 可以很容易自定义 安装 CocoaPods 要使用CocoaPods安装FFToast,请将其集成到您现有的Podfile中,或创建一个新的

永不过时的自定义AlertView

码农门都知道,再好的项目如果用户体验跟不上的话也就死了一半了,特别是网络这块,经常需要我们弹出各种提示框,这就需要用到alertView了,但是ios8以后alertView就被alertController替代了 而项目中用我们又经常需要用到它,今天笔者就为大家带来一个可以显著提升用户体验度,直接继承至UIWindow的高度自定义AlertView(永不过时),希望大家喜欢!废话不多说,直接上代码 .h文件如下 // // Prompt.h // CustomAlertView // // C

自定义Lable提示框(渐变动画)

- (void)viewDidLoad { [super viewDidLoad]; // 移除按钮不能使用,开始默认 self.removeBtn.enabled = NO; self.alertView.textAlignment = UITextAlignmentCenter; self.alertView.alpha = 0.0; // 完全透明 self.alertView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:0

ios7 push pop 动画突然消失的解决方案

不想看扯淡的同学,直接拉倒底部查看.......... 这几天开发的程序遇到了这样的问题. 突然之前在ios7运行的程序全无动画效果. 系统自带的push pop之类的也完全没有动画效果,就好像view直接add上去的一样. 蛋疼.... 查看了下代码.. 完全不知道该如何下手了. 怎么办.. 百度 谷歌... 关键字:ios7 动画效果消失 出现如下界面... 这他妈是什么啊... 换谷歌.. 谷歌还是比百度靠谱,但是点进去发现.这也只是跟我一样出现了这些现象提出来的问题,但是解决方案呢,wh

Swift实现UIKit Dynamic动画

iOS7引入了UIKit Dynamics,可以帮助开发者开发出更接近真实世界的动画效果.之前,用户如果要做出这样的效果,需要话很多的时间在物理计算和Core Animation上.现在,所有的一切都变得非常简单,只要简单的几行就可以实现真实世界的效果.比如,重力.碰撞等. UI Dynamics中得类包括: UIGravityBehavior -给你的view添加重力效果. UICollisionBehavior -添加碰撞效果. UISnapBehavior -添加瞬间移位到某个位置,就好像

IOS学习笔记(四)AlertView

[转] alertView     有两个button时,一般默认使左边的是取消,右边的是确认.苹果习惯~ alertView 的属性是可以设置的.   [AlertView setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];     < UIAlertView *alertView = [UIAlertView alloc] initWithTitle:@"DefaultAlertView"message:@&qu