要打滑View参加UIPanGestureRecognizer

#pragma mark 手势识别器回调方法

- (void)dragView:(UIPanGestureRecognizer *)gesture{

switch (gesture.state) {

case
UIGestureRecognizerStateBegan:

[self
startDrag];

break;

case
UIGestureRecognizerStateEnded:

[self
endDrag];

break;

default:

[self
Draging:gesture];

break;

}

}

#pragma mark 開始拖动,记录下開始的x值

- (void)startDrag{

CGRect frame = _mainView.frame;

_lastDownX = frame.origin.x;

}

#pragma mark 正在拖动,让View跟着动

- (void)Draging:(UIPanGestureRecognizer *)gesture{

CGFloat maxX = [UIScreen
mainScreen].bounds.size.width *
kSlideRatio;

CGPoint transform = [gesture
translationInView:_mainView];

CGRect frame = _mainView.frame;

frame.origin.x =
_lastDownX + transform.x;

if (frame.origin.x <
) {   //不能够移动到屏幕左边去

frame.origin.x =
;

}else
if(frame.origin.x > maxX){

frame.origin.x = maxX; 
//限制移动的最右边

}

_mainView.frame = frame;

//
设置界面scale动画

CGFloat tx = frame.origin.x;

) {

tx =
;

}

CGFloat txScale = tx /
_settingsViewController.view.frame.size.width;

//
让imageview缩放

double scale =
kDefaultSettingScale -
kDefaultSettingScale);

){

scale =
;

}

CGAffineTransform cgTransform =
CGAffineTransformMakeScale(scale, scale);

[_settingsViewController
setAnimationScale:cgTransform];

}

#pragma mark 拖动结束,推断要往哪边滚动

- (void)endDrag{

int maxX = [self
getSettingRight];

int currentX = _mainView.frame.origin.x;

if (currentX < maxX *
0.5) {    //没到一半,回到左边

currentX =
;

}else{     
//回到右边

currentX = maxX;

}

CGRect frame = _mainView.frame;

frame.origin.x = currentX;

[self
scrollMainViewToFrame:frame withDuration:0.25];

}

版权声明:本文博主原创文章,博客,未经同意不得转载。

hibou 主界面自己侧滑的定义的更多相关文章

  1. 使用DotNetBar制作漂亮的WinFrom界面,自定义AgileEAS.NET SOA平台WinClient主界面

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  2. delphi 一个线程和主界面的交互的演示代码

    求一个线程和主界面的交互的演示代码求一个线程和主界面的交互的演示代码.线程和主界面处于两个Unit.线程中的user中不能引用主窗口.我只是想学习一下,线程和主界面交互的方法.去网上查了好几天资料,能 ...

  3. Android应用主界面底部菜单实现

    介绍 现在绝大多数主流的应用主界面,都会包含一个底部菜单,就拿腾讯的QQ与微信来说,看起来是这样的  <---我是底部菜单 原理 在很久以前,可以通过TabActivity实现相关功能,自从Fr ...

  4. Android小项目之十一 应用程序的主界面

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  5. Android学习系列(23)--App主界面实现

    在上篇文章<Android学习系列(22)--App主界面比较>中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局.今天我们就这个经典布局,用代码具体的实现它. 1.预览图先看下 ...

  6. Android ActionBar应用实战,高仿微信主界面的设计

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...

  7. 使用Vitamio打造自己的Android万能播放器(3)——本地播放(主界面、播放列表)

    前言 打造一款完整可用的Android播放器有许多功能和细节需要完成,也涉及到各种丰富的知识和内容,本章将结合Fragment.ViewPager来搭建播放器的主界面,并实现本地播放基本功能.系列文章 ...

  8. “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)

    “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...

  9. Android开发(25)--framebyframe帧动画并实现启动界面到主界面的跳转

    Drawable animation可以加载Drawable资源实现帧动画.AnimationDrawable是实现Drawable animations的基本类.推荐用XML文件的方法实现Drawa ...

随机推荐

  1. Dice Notation(模拟)

    Dice Notation Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit  ...

  2. linux内核中驱动开发常见的相似多态

    #include<stdio.h> #include<stdlib.h> struct test { char name[20]; void (*func)(char *); ...

  3. C#入门(一):IDE

    设计流程 .NET可视化对象 创建工程的时候,会创建三个文件 Form1.cs Form1.Designer.cs Program.cs 当增加一个控件的时候,会在Form1.Designer.cs增 ...

  4. 阿里云RDS导入服务器数据库 XtraBackup

    如果是centos系统,默认会开启selinux 一定需关闭selinux 解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=dis ...

  5. putty保持连接不自动段开

    经常在网上看到有人说自己利用putty工具登录服务器总是连接不上,这样的情况自己在刚接触putty时也遇到过.在 Connection 里面有个 Seconds between keepaliaves ...

  6. What should we do when meet a crash in android?

    制造一个crash   为了演示的目的,我在libsensors的open_sensors_device中故意制造了一个crash:   static int open_sensors_device( ...

  7. EF Code Frist

    EF:学习资料 http://www.cnblogs.com/libingql/category/366833.html

  8. IOS中设置状态栏的状态

    IOS上 关于状态栏的相关设置(UIStatusBar) 知识普及 ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部分:就是指的显示电池.时 ...

  9. 如何查看SQLServer数据库每个表占用的空间大小?

    如何查看SQLServer数据库每个表占用的空间大小? 创建存储过程: CREATE PROCEDURE [dbo].[sys_viewTableSpace]AS BEGIN SET NOCOUNT ...

  10. Android Fragment(碎片)的使用

    简介 在Android中Fragment为一种可以嵌入活动中的UI片段.能让程序更加合理地利用大屏幕的空间. 使用方法 1.我们首先新建的一个onefragment.xml文件. <?xml v ...