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种抽屉效果的更多相关文章

  1. 玩转iOS开发:iOS中的GCD开发(三)

    上一章, 我们了解到了GCD里的一些队列和任务的知识, 也实践了一下, 同时我们也对主队列的一些小情况了解了一下, 比如上一章讲到的卡线程的问题, 如果没有看的朋友可以去看看玩转iOS开发:iOS中的 ...

  2. iOS开发CoreAnimation解读之三——几种常用Layer的使用解析

    iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一.CAEmitterLayer 二.CAGradientLayer 三.CAReplicatorLayer 四.CASh ...

  3. 玩转iOS开发 - JSON 和 Xml 数据解析

    前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...

  4. iOS开发之各种动画各种页面切面效果

    因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一些干货,切勿错过哦.今天所介绍的主题是关于动画的,在之前的博客中也有用到动画的地方,今天就好好的总结一下iOS开发中常用的动画.说道动画其 ...

  5. 【转】iOS开发之各种动画各种页面切面效果

    原文: http://www.cnblogs.com/ludashi/p/4160208.html?utm_source=tuicool 因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一 ...

  6. iOS 开发之模糊效果的五种实现

    前言 在iOS开发中我们经常会用到模糊效果使我们的界面更加美观,而iOS本身也提供了几种达到模糊效果的API,如:Core Image,使用Accelerate.Framework中的vImage A ...

  7. 玩转iOS开发 - 多线程开发

    前言 本文主要介绍iOS多线程开发中使用的主要技术:NSOperation, GCD. NSThread, pthread. 内容依照开发中的优先推荐使用的顺序进行介绍,涉及多线程底层知识比較多的NS ...

  8. 玩转iOS开发 - 数据缓存

    Why Cache 有时候.对同一个URL请求多次,返回的数据可能都是一样的,比方server上的某张图片.不管下载多少次,返回的数据都是一样的. 上面的情况会造成下面问题 (1)用户流量的浪费 (2 ...

  9. 玩转iOS开发 - 消息推送

    消息推送

随机推荐

  1. sencha touch2 动画问题

    最近在review一个项目的代码, 发现返回操作比较乱,很多"从哪里来,到哪里去的操作"被写的一塌糊涂; 按照ios系统的进场出场动画(人家的体验还是很好的,必须借鉴)为标准,使用 ...

  2. HNOI2008 GT 考试

    我不明白为什么是DP,我感觉和vijos的核电站问题(https://www.vijos.org/p/1232)差不多啊 这是别人的题解:http://www.cnblogs.com/Skywalke ...

  3. python20151130

    tab和空格混排是报错的 import os #如何获取当前路径 #当前路径可以用'.'表示,再用os.path.abspath()将其转换为绝对路径 print(os.path.abspath('. ...

  4. Spring--通过注解来配置bean

    Spring通过注解配置bean 基于注解配置bean 基于注解来配置bean的属性 在classpath中扫描组件 组件扫描(component scanning):Spring能够从classpa ...

  5. NopCommerce源码架构详解--初识高性能的开源商城系统cms

    很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们 ...

  6. 使用CSS3美化复选框checkbox

    我们知道HTML默认的复选框样式十分简陋,而以图片代替复选框的美化方式会给页面表单的处理带来麻烦,那么本文将结合实例带您一起了解一下使用CSS3将复选框checkbox进行样式美化,并且带上超酷的滑动 ...

  7. 《深入Java虚拟机学习笔记》- 第7章 类型的生命周期/对象在JVM中的生命周期

    一.类型生命周期的开始 如图所示 初始化时机 所有Java虚拟机实现必须在每个类或接口首次主动使用时初始化: 以下几种情形符合主动使用的要求: 当创建某个类的新实例时(或者通过在字节码中执行new指令 ...

  8. Console.WriteLine()与MessageBox.Show()的区别

    Console.WriteLine(); 将当前行终止符写入标准输出流 在学习控制台应用程序时经常用,输出到控制台 MessageBox.Show();  显示可包含文本.按钮和符号(通知并指示用户) ...

  9. [转载]maven基础入门

    用 Maven 做项目构建 本文转载自:https://www.ibm.com/developerworks/cn/java/j-lo-maven/ 本文将介绍基于 Apache Maven 3 的项 ...

  10. BNUOJ-29357 Bread Sorting 模拟

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29357 直接模拟就可以了.. //STATUS:C++_AC_190MS_1884KB # ...