hibou 主界面自己侧滑的定义
要打滑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 主界面自己侧滑的定义的更多相关文章
- 使用DotNetBar制作漂亮的WinFrom界面,自定义AgileEAS.NET SOA平台WinClient主界面
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- delphi 一个线程和主界面的交互的演示代码
求一个线程和主界面的交互的演示代码求一个线程和主界面的交互的演示代码.线程和主界面处于两个Unit.线程中的user中不能引用主窗口.我只是想学习一下,线程和主界面交互的方法.去网上查了好几天资料,能 ...
- Android应用主界面底部菜单实现
介绍 现在绝大多数主流的应用主界面,都会包含一个底部菜单,就拿腾讯的QQ与微信来说,看起来是这样的 <---我是底部菜单 原理 在很久以前,可以通过TabActivity实现相关功能,自从Fr ...
- Android小项目之十一 应用程序的主界面
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android学习系列(23)--App主界面实现
在上篇文章<Android学习系列(22)--App主界面比较>中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局.今天我们就这个经典布局,用代码具体的实现它. 1.预览图先看下 ...
- Android ActionBar应用实战,高仿微信主界面的设计
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...
- 使用Vitamio打造自己的Android万能播放器(3)——本地播放(主界面、播放列表)
前言 打造一款完整可用的Android播放器有许多功能和细节需要完成,也涉及到各种丰富的知识和内容,本章将结合Fragment.ViewPager来搭建播放器的主界面,并实现本地播放基本功能.系列文章 ...
- “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)
“MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...
- Android开发(25)--framebyframe帧动画并实现启动界面到主界面的跳转
Drawable animation可以加载Drawable资源实现帧动画.AnimationDrawable是实现Drawable animations的基本类.推荐用XML文件的方法实现Drawa ...
随机推荐
- CSS3初步
一.CSS与CSS3的区别 非常简单,CSS代表"Casading Style Sheets",就是样式表,是一种替代并为网站添加样式的标记性语言.现在所使用的CSS基本是在199 ...
- Class对象
(一) 获得Class对象的四种方式 第1种方法:Object.getClass() 第2种方法:.class语法 第3种方法:Class.forName() 第4种方法:包装类的TYPE域 impo ...
- category和extensions
catgory 允许你为一个已经存在的类增加方法,而不需要增加一个子类.而且不需要知道它内部具体的实现. 另外,虽然Category不能够为类添加新的成员变量,但是Category包含类的所有成员变量 ...
- IOS 网络判断
Reachability *connectionNetWork= [Reachability reachabilityForInternetConnection] ; int status = [co ...
- UVa 1394: And Then There Was One
设置一个数组Winner记录经典约瑟夫问题中的剩余者即可递归解决该问题. 注: 约瑟夫问题:有编号为0~n-1的n个人,从0号开始报数1,2,3......报到k的杀死,然后从下一个人开始继续报数1, ...
- JQ动画 show hide
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- ios 75个工具
如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务. 软件开发同样如此.你可以从软件开发者如何使用工具中看出他水准如何.有经验的开发者精于使用工具.对你目前所使用的工具 ...
- UINavigationController 和 UITabBarController
UINavigationController当设置根控制器的时候,意思就是把根控制器压入栈内,当我们push的时候,我们把下一个控制器压入栈内,当我们pop的时候把上面的控制器的内存释放 UITa ...
- Servlet 学习总结-2
#重定向与转发的区别 开发Web应用中会遇到从一个页面跳转到另一个页面的问题,在JSP中有两种跳转方式: 1.重定向 2.转发(转向) 重定向:首先服务器受到浏览器客户端请求之后,服务器发送新的链接到 ...
- Android 桌面生成快捷方式
Android生成桌面快捷方式的几种方法: //------------以下为动态替换桌面应用Icon的一种解决方案------------------- // 1.获取本地目录图片的Bitmap ; ...