博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS项目之弹出动画终结篇
阅读量:6297 次
发布时间:2019-06-22

本文共 2588 字,大约阅读时间需要 8 分钟。

今天来一个终极封装已经上传到Github上弹出动画总结篇。

UIPopoverTableView也是在前面的几个基础上进行封装。如果对默认的动画效果不满意可以继承它,重写- (void)fadeIn和- (void)fadeOut方法在Github中也写了一个demo。

UIPopoverTableView本质还是一个TableView,只是在TableView的基础上增加了一些属性和方法,下面我把.H贴出来,介绍下怎么使用。

////  UIPopoverTableView.h//  XQBCommunityApp////  Created by City--Online on 16/1/27.//  Copyright © 2016年 CityOnline_1. All rights reserved.//#import 
#import
@class UIPopoverTableView;@protocol PopoverTableViewDelegate
@optional//头部视图-(UIView *)popTableHeadView:(UITableView *)tableView;//顶部试图-(UIView *)popTableFooterView:(UITableView *)tableView;//取消- (void)popoverTableViewCancel:(UITableView *)popTableView;@end@interface UIPopoverTableView : UITableView@property (nonatomic,strong) UIControl *overlayView;@property (nonatomic,strong) UIView *contentView;@property (nonatomic,assign) float contentViewCornerRadius;@property (nonatomic, assign) id
popoverDelegate;//在父视图view的相对位置为Frame-(void)showInView:(UIView*)view withFrame:(CGRect)frame;//下面两个方法主要是为了子类定义弹入弹出动画//显示的动画效果- (void)fadeIn;//显示的动画效果- (void)fadeOut;@end

1.PopoverTableViewDelegate协议中主要是头部、尾部和点击空白的代理方法。

2.属性

overlayView是背景层。

contentView是包括头部、尾部和中间的TableView,整个的弹出内容。

contentViewCornerRadius是设置contentView的边角。

对于有些可能要设置中间View的CornerRadius,可以设置UIPopoverTableView的CornerRadius,例如下面的效果图.

 

3.方法

- (void)fadeIn;- (void)fadeOut;主要是为了子类自定义contentView的弹入弹出效果。

UIPopoverTableView默认contentView的动画效果类似微信红包的效果。

如果要改变动画显示效果例如从底部弹出、或者从顶部拉出,可以继承UIPopoverTableView重现- (void)fadeIn;- (void)fadeOut;在Github中我是这样重写,主要还是对

contentView和overlayView操作。

- (void)fadeIn{        self.contentView.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width, self.contentView.frame.size.height);    [UIView animateWithDuration:.35 animations:^{        self.contentView.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height-self.contentView.frame.size.height, [UIScreen mainScreen].bounds.size.width, self.contentView.frame.size.height);    } completion:^(BOOL finished) {            }];}- (void)fadeOut{                    [UIView animateWithDuration:.35 animations:^{               self.contentView.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width, self.contentView.frame.size.height);        } completion:^(BOOL finished) {            if (finished) {                [self.overlayView removeFromSuperview];                [self.contentView removeFromSuperview];            }        }];    }

UIPopoverTableView可以实现小区宝中的以下几个效果

 

对于这几次博客园管理员总是将我的博客移除首页,我表示遗憾。

转载地址:http://ycqta.baihongyu.com/

你可能感兴趣的文章
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
项目经理笔记一
查看>>
Hibernate一对一外键双向关联
查看>>
mac pro 入手,php环境配置总结
查看>>
MyBatis-Plus | 最简单的查询操作教程(Lambda)
查看>>
rpmfusion 的国内大学 NEU 源配置
查看>>
spring jpa 配置详解
查看>>
IOE,为什么去IOE?
查看>>
Storm中的Worker
查看>>
dangdang.ddframe.job中页面修改表达式后进行检查
查看>>
Web基础架构:负载均衡和LVS
查看>>
Linux下c/c++相对路径动态库的生成与使用
查看>>
SHELL实现跳板机,只允许用户执行少量允许的命令
查看>>