玩转iOS开发 - 简易的实现2种抽屉效果
BeautyDrawer
BeautyDrawer 是一款简单易用的抽屉效果实现框架,集成的属性能够对view 滑动缩放进行控制。
Main features
- 三个视图,主视图能够左右滑动。实现抽屉效果
- 应用框架接口的内置參数属性能够对view的滑动速度。偏移度,和缩放比例进行设置
- 简单易用
Demonstration
Requirements
- iOS 6.0+
- Xcode 6.1.1
Installation
手动导入:
* 将BeautyDrawer/Resource目录中的全部文件拽入项目中
* 导入主头文件<BeautyDrawer/ZHDrawerController.h>
API
Properties
/*
*主视图隐藏后显示比例(0~1) 是对主视图大小缩放的属性: 0.8
*/
@property (nonatomic, assign) CGFloat hideMainViewScale;
/**
*主视图点击或拖拉恢复后比例 (0~1) 默认:1
*/
@property (nonatomic, assign) CGFloat backMainViewScale;
/*
*主视图拖拽后centerX偏移比例,默认:0.05
*/
@property (nonatomic, assign) CGFloat centerDeviationX;
/*
*主视图centerY偏移比例,默认:1
*/
@property (nonatomic, assign) CGFloat centerDeviationY;
/*
*滑动速度系数-建议在0.5-1之间。默觉得0.5
*/
@property (assign,nonatomic) CGFloat speed;
/*
*是否同意点击视图恢复视图位置。默觉得yes
*/
@property (strong) UITapGestureRecognizer *sideslipTapGes;
Method
不同的构造方法能够实现不同视图的格局
/*
*构造方法(左控制器 & 主控制器 &右控制器 & 背景图片)
*/
- (instancetype)initWithLeftController:(UIViewController *)leftController
andMainController:(UIViewController *)mainController
andRightController:(UIViewController *)rightController
andBackgroundImage:(UIImage *)image;
/*
*构造方法(左控制器 & 主控制器 & 又控制器)
*/
- (instancetype)initWithLeftController:(UIViewController *)leftController
andMainController:(UIViewController *)mainController
andRightController:(UIViewController *)rightController;
/*
*构造方法(左控制器 & 主控制器)
*/
- (instancetype)initWithLeftController:(UIViewController *)leftController andMainView:(UIViewController *)mainController;
/*
*构造方法(右控制器 & 主控制器)
*/
- (instancetype)initWithRightView:(UIViewController *)rightController andMainView:(UIViewController *)mainController;
Usage
appdelegate 设置(required)
在appdelegate.m 文件里对视图初始化
#import "AppDelegate.h"
#import "LeftViewController.h"
#import "MainViewController.h"
#import "RightViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 1. 创建window
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 2. 创建控制器
MainViewController *main = [[MainViewController alloc] init];
LeftViewController *left = [[LeftViewController alloc] init];
RightViewController *right = [[RightViewController alloc] init];
// 3. 创建跟控制器
self.controller = [[ZHDrawerController alloc] initWithLeftController:left andMainController:main andRightController:right];
self.controller.hideMainViewScale = 0.8;
self.controller.backMainViewScale = 1.0;
self.controller.centerDeviationX = 0.2;
// 4. 设置跟控制器
self.window.rootViewController = self.controller;
// 5. 显示 window
[self.window makeKeyAndVisible];
return YES;
}
对视图加入子view显示
在leftView,rightView, mainView中自己定义view
- (void)viewDidLoad
{
[super viewDidLoad];
//不缩放 hideMainViewScale = 1.0
[self addImage];
//缩放 hideMainViewScale = 0.8
//[self loadAddView];
}
- (void)addImage
{
UIImageView *img = [[UIImageView alloc] initWithFrame:self.view.frame];
img.image = [UIImage imageNamed:@"main.jpg"];
[self.view addSubview:img];
}
GitHub
https://github.com/HuanDay/BeautyDrawer.git
致谢wangxiaoit童鞋
玩转iOS开发 - 简易的实现2种抽屉效果的更多相关文章
- 玩转iOS开发:iOS中的GCD开发(三)
上一章, 我们了解到了GCD里的一些队列和任务的知识, 也实践了一下, 同时我们也对主队列的一些小情况了解了一下, 比如上一章讲到的卡线程的问题, 如果没有看的朋友可以去看看玩转iOS开发:iOS中的 ...
- iOS开发CoreAnimation解读之三——几种常用Layer的使用解析
iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一.CAEmitterLayer 二.CAGradientLayer 三.CAReplicatorLayer 四.CASh ...
- 玩转iOS开发 - JSON 和 Xml 数据解析
前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...
- iOS开发之各种动画各种页面切面效果
因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一些干货,切勿错过哦.今天所介绍的主题是关于动画的,在之前的博客中也有用到动画的地方,今天就好好的总结一下iOS开发中常用的动画.说道动画其 ...
- 【转】iOS开发之各种动画各种页面切面效果
原文: http://www.cnblogs.com/ludashi/p/4160208.html?utm_source=tuicool 因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一 ...
- iOS 开发之模糊效果的五种实现
前言 在iOS开发中我们经常会用到模糊效果使我们的界面更加美观,而iOS本身也提供了几种达到模糊效果的API,如:Core Image,使用Accelerate.Framework中的vImage A ...
- 玩转iOS开发 - 多线程开发
前言 本文主要介绍iOS多线程开发中使用的主要技术:NSOperation, GCD. NSThread, pthread. 内容依照开发中的优先推荐使用的顺序进行介绍,涉及多线程底层知识比較多的NS ...
- 玩转iOS开发 - 数据缓存
Why Cache 有时候.对同一个URL请求多次,返回的数据可能都是一样的,比方server上的某张图片.不管下载多少次,返回的数据都是一样的. 上面的情况会造成下面问题 (1)用户流量的浪费 (2 ...
- 玩转iOS开发 - 消息推送
消息推送
随机推荐
- [原]Unity3D深入浅出 - 认识开发环境中的RenderSettings面板
点击菜单栏的Edit项里的RenderSettings即可打开该面板. Fog:在Scene中开启雾效果 Fog Color:雾的颜色 Fog Mode:雾效果的模式,Linear(线性雾效果) Ex ...
- LeetCode Power of Two (2的幂)
题意:判断1个数n是否刚好是2的幂,幂大于0. 思路:注意会给负数,奇数.对于每个数判断31次即可. class Solution { public: bool isPowerOfTwo(int n) ...
- apache开源项目--Mahout
Apache Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可 ...
- 【转】Bluetooth数据包捕获
原文网址:http://www.cnblogs.com/hzl6255/p/3887013.html 这里介绍一种在Android上捕获蓝牙数据包的方法 1. 前提 首先你要有一部Android手机 ...
- http://www.cnblogs.com/youfan/articles/3216816.html
我对 CodeFirst 的理解,与之对应的有 ModelFirst与 DatabaseFirst ,三者各有千秋,依项目实际情况自行选择. 1.开发过程中先行设计数据库并依此在项目中生成 *.dbm ...
- HDU 4614-Vases and Flowers(线段树区间更新)
题意: n个花瓶(0-n-1) 现有两个操作, 操作1 给a,f 从a位置开始向后连续插f个花(一个花瓶插一个)若当前花瓶有花则向后找,直到n-1位置如果还有多余的花则丢掉求查完花的第一和最后一个位置 ...
- [MySQL-1] mysql error 1101 blob/text column can't have a default value
在MySQL Query Browser上创建一个含有TEXT类型的字段,创建不成功,报错:mysql error 1101 blob/text column can't have a default ...
- bzoj 1835 [ZJOI2010]base 基站选址(DP+线段树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1835 [题意] 有n个村庄,每个村庄位于d[i],要求建立不多于k个基站,在第i个村庄 ...
- bzoj 3295 [Cqoi2011]动态逆序对(cdq分治,BIT)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3295 [题意] n个元素依次删除m个元素,求删除元素之前序列有多少个逆序对. [思路] ...
- NOIP2010 乌龟棋
2乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌 ...