ios 的ios 侧滑菜单实现 oc android怎么实现

rainbird2 的BLOG
用户名:rainbird2
文章数:285
评论数:1145
访问量:1943591
注册日期:
阅读量:24883
阅读量:261375
阅读量:999095
阅读量:149339
51CTO推荐博文
&从七八月前对苹果一无所知,到现在手持iphone,ipad,itouch有三个线上成熟app并熟练开发ios应用.一路走来一直站在前辈的肩膀上不断进步.如今生活工作稳定是时候将一直以来的一些心得整理出来了.想来想去决定先说说UITableView.
对于app应用来说,使用列表的形式展现数据非UITableView莫属.在熟练掌握了用UITableView展示数据以后,是不是也遇到了需要删除数据的需求?是不是觉得在一行数据上划动一下,然后出现一个删除按钮很酷?废话少说,直奔正题,就由笔者来向您展示一下这个功能的实现是多么容易.
先前的准备工作:
第一步,准备好数据源.
#import&&UIKit/UIKit.h&&&&@interface&UITableCellSwapDeleteViewController&:&UIViewController&&UITableViewDelegate&{&&&&&IBOutlet&UITableView&*testTableV&&&&&NSMutableArray&*dataA&}&@property&(nonatomic,&retain)&UITableView&*testTableV&@property&(nonatomic,&retain)&NSMutableArray&*dataA&@end&&&-&(void)viewDidLoad&{&&&&&[super&viewDidLoad];&&&&&dataArray&=&[[NSMutableArray&alloc]&initWithObjects:@&1&,@&2&,@&3&,@&4&,@&5&,nil];&&&&&&}&
这里笔者定义了并实现了一个一维的可变数组.为什么要用可变数组呢?因为我们要删除里面的数据呀.
第二步,展示数据.
-&(NSInteger)numberOfSectionsInTableView:(UITableView&*)tableView&{&&&&&&&&&&return&1;&}&&&&&-&(NSInteger)tableView:(UITableView&*)tableView&numberOfRowsInSection:(NSInteger)section&{&&&&&&&&&&return&[dataArray&count];&}&&&&&&-&(UITableViewCell&*)tableView:(UITableView&*)tableView&cellForRowAtIndexPath:(NSIndexPath&*)indexPath&{&&&&&&&&&&static&NSString&*CellIdentifier&=&@&Cell&;&&&&&&&&&&UITableViewCell&*cell&=&[tableView&dequeueReusableCellWithIdentifier:CellIdentifier];&&&&&if&(cell&==&nil)&{&&&&&&&&&cell&=&[[[UITableViewCell&alloc]&initWithStyle:UITableViewCellStyleDefault&reuseIdentifier:CellIdentifier]&autorelease];&&&&&}&&&&&&&&&&&&&&&cell.textLabel.text&=&[dataArray&objectAtIndex:indexPath.row];&&&&&return&&}&
通过实现上面三个代理方法向UITableView中添加了数据.
通过上面两步就实现了数据展示工作,接下就实现关键的数据删除了.
-&(BOOL)tableView:(UITableView&*)tableView&canEditRowAtIndexPath:(NSIndexPath&*)indexPath&{&&&&&return&YES;&}&&&-&(void)tableView:(UITableView&*)tableView&commitEditingStyle:(UITableViewCellEditingStyle)editingStyle&forRowAtIndexPath:(NSIndexPath&*)indexPath&{&&&&&&&&if&(editingStyle&==&UITableViewCellEditingStyleDelete)&{&&&&&&&&&&[dataArray&removeObjectAtIndex:indexPath.row];&&&&&&&&&&&&&&&&&&&&[testTableView&deleteRowsAtIndexPaths:[NSArray&arrayWithObject:indexPath]&withRowAnimation:UITableViewRowAnimationFade];&&&&&&&&&&&&&&&&}&&&&&&&&&else&if&(editingStyle&==&UITableViewCellEditingStyleInsert)&{&&&&&&&&&&&&}&&&&&}&
&启用上面两个代理,并增加数据删除操作:
[dataArray removeObjectAtIndex:indexPath.row];
&在一条数据上向右划动一下.
&点Delete.
&是不是就成功删除了一条数据呢?
&按理说故事讲到这里也就讲完了.但是笔者想延伸一下.注意看图二划动以后的&Delete&,你有没有想把这个东东改掉的冲动呢?比如改成:下载?其实很简单,其实下面这个代理方法:
-&(NSString&*)tableView:(UITableView&*)tableView&titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath&*)indexPath{&&&&&&&&&return&@&下载&;&}&
再划动一下,是不是变了呢?
具体代码见附件本文出自 “” 博客,请务必保留此出处
了这篇文章
附件下载:  
类别:┆阅读(0)┆评论(0)
请输入验证码:ios 侧滑切换控制器
之前腾讯笔试有一道题目就是,请写出在子线程中更新UI的几种办法? 在实际项目中,我们也经常会遇到开辟子线程做事情的途中需要更新一下UI,这里总结一下Android和iOS快速切换到主线程更新UI的办法. Android 方法一:view.post(Runnable action) 这是我认为最简单的方法了,比如你在子线程获得了多个数据,需要更新textview显示这些数据, ...
iOS 旋转木马切换视图 iCarousel
用户点击home 键
应用退到后台 再次点击进入前台
在UIViewController里面 控制器如何获取相关的事件?
2.需求 (1)NSTimer
在应用程序进入后台 10秒至10分钟会停止(10分钟左右一般应用也会被kill)
但是只要在后台这个nstimer 运行 就是邋遢的 所以我想停止它 在应用进入后台的时候 (2)程序支持后台下载, ...
一.UIModalController:模态窗口(一个控制器模态出另一个控制器的模态窗口) 当我们在view controller A中模态显示view controller B的时候,A就充当presenting view controller(弹出VC),而B就是presented view controller(被弹出VC).官方文档建议这两者之间通过delegate ...
UINavigationController:一个以栈的形式管理多视图的容器,负责子控制器之间的跳转.由于以栈的方式管理视图,各个视图的切换就是压栈和出栈操作,所以出栈后的视图会立即销毁. 介绍: &1& UINavigationController也是容器的一种,负责子控制器之间的跳转 &2& UINavigationController以栈的形式 ...
侧滑导航面板偶尔会用到,这里总结一些第三方: 本文将介绍如何创建类似Facebook和Path iOS程序中的滑出式导航面板. 向右滑动 滑出式设计模式可以让开发者在程序中添加常用的导航功能,又不会浪费屏幕上宝贵的空间.用户可以在任意时间滑出导航面板,并且还可以看到当前屏幕上显示的内容.
现在,互联网上有些库已经内置滑出式设计模式,比如John-Lluch开发的SWRe ...
一.什么是标签栏控制器?把标签栏控制器(UITabBarController).标签栏(UITabBar).导航栏控制器(UINavigationController).导航栏(UINavigationBar)分清楚. UITabBarController是继承与UIViewController的,它也是试图控制器,叫标签栏试图控制器,UIViewController是继承 ...
一.什么是试图控制器? 视图控制器就是用来管理视图的加载.卸载.横屏竖屏显示等操作的控制器. 每一个界面都会由一个控制器来管理显示 ,单独的界面view需要视图控制器这个载体来管理显示. UIViewController是所有视图控制器的父类 . iOS提供了许多内置的视图控制器类,以支持标准的用户界面部分,比如导航控制器 (UINavigationController), ...
导航控制器掌握:
1.创建导航控制器
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.viewController];
2.zhan (zhan 中所有的子控制器)
self.navigationControl ...
在变成过程中,经常遇到两个视图控制器之间的切换,导航控制器即UINaVigation是最常用的一种,有时为了某些效果又需要进行模态切换,即present. 我们的布局经常是在window上加一个nav,然后以viewControl作为nav的根视图进行导航.如果在导航之间有了一个present之后,你会发现当前页面的navigationController是空的,也就是说导 ...
IOS视图控制器左边缘右滑pop出栈 IOS7.0之后,苹果优化了一个小功能,就是对于UINavagationController堆栈里的UIViewController,只要轻轻在视图控制器的左边缘右滑一下,该视图控制器就会pop出栈(前提当然是对于非根视图控制器而言).实现方法很简单,一句话搞定: self.navigationController.interactiv ...
创建一个控制器 控制器常见的创建方式有以下几种 //通过storyboard创建 //直接创建 ViewController *vc = [[ViewController alloc] init]; //指定xib文件来创建 ViewController *vc = [ViewController alloc] initWithNibName:@&ViewCont ...
UIScreen是与设备有关的物理屏幕 Window是一个窗口对应UIWindow类,继承自UIView,window要显示在Screen上必须设置为主窗口并且可见.接下来就可以往UIWindow上面添加一些控件了. 下图就是简单地层次关系 ViewController是用来组织和控制视图的,与上图不同的是这里使用了视图控制器ViewController,不需要直接将vie ...
导航控制器的顶级视图中的每一行分别表示一个不同的视图控制器,当选中其中一行时,对应的视图控制器会被加入到导航控制器的栈中,每行右侧的灰色箭头是扩展图标(被称为扩展指示器),用于告知用户触摸该箭头将切换到另一个表视图. 子控制器的右侧有个细节展示按钮,点击它将显示当前行的更多详细信息,并且可以编辑. 使用扩展指示器和细节展开按钮的时机: 如果希望一次&行点击&quo ...
从一个视图控制器切换到另一个视图控制器的几种方式 1,模态(modal)画面的显示方法: 例如iphone通讯录管理程序中,追加新的通讯纪录时,就是使用这种模态画面 例:点击一个按钮,进入另一个界面 - (IBAction)pressAbout:(id)sender {
XAboutViewController *about=[[[XAboutViewControl ...
1.init Allocating critical data structures required by your view controller 不要出现创建view的代码.良好的设计,在init里应该只有相关数据的初始化,而且这些数据都是比较关键的数据.init里不要掉self.view,否则会导致viewcontroller创建view.(因为view是lazyi ...
今天做项目的时候,产品经理说要实现类似facebook那样侧滑菜单的效果,其实现在很多app都实现了类似的效果,比如网易新闻,搜狗输入板等.于是就在网上搜索其实现的原理,虽然也搜到了不少,但是发现它们实现的都过于复杂,代码看起来实在是费劲,我是一个非常注重简单明了的人,极力主张一切从简,能简单就一定不复杂,于是就自己尝试来实现了. 首先简单说一下我实现的原理:需要两个UIV ...
1.-(void)loadView你应该永远不要直接调用这个函数.当视图控制器的view属性被请求但是其值为nil时,该函数将会被调用.该函数加载或创建一个视图并把它分配给view属性.如果视图控制器有一个与之相关联的nib文件,这个方法将会从nib文件中加载视图.当视图控制器的nibName属性的值不是nil时,就说明视图控制器有一个与之相关联的nib文件.如果你直接用i ...
ios 里的 三级控制器 是 一个 tabbar控制器 控制 多个 navigation 控制器, 然后每个 navigation
控制器 对应着
本项目 初始化分为两部分 : 视图初始化 , tabbar 初始化 //视图初始化-(void)initView { //set view First *first=[[First alloc]init]; ...
7.1 导航控制器7.2 创建第一级控制器7.3 第一个二级控制器7.4 第一个三级控制器7.5 第二个二级表控制器7.6 第三个二级表控制器7.7 第四个二级表控制器7.8 第五个二级表视图控制器7.8 第六个二级表视图控制器
7.1 导航控制器关于导航控制器和表视图导航控制器和表视图密不可分.严格的说,要完成导航控制器的功能并不需要表视图.然而,在实际的应用程序中使 ...本系列文章中,我们将尝试再造手机QQ的侧滑菜单,力争最大限度接近手Q的实际效果,并使用 Auto Layout 仿造左侧菜单,实现和主视图的联动。代码示例:/johnlui/SwiftSideslipLikeQQ最终效果:开发环境本系列文章的开发环境为:OS X 10.10.3Xcode Version 6.3 (6D570)基本数据采集初步体验,手Q采用的应该是线性动画,即缩放比例等随着手指滑动的距离以一次方程的形式变化。动画达到最大幅度时截图如下(4.7 寸):提取基本数据:右侧主视图左边界距离屏幕左边界的距离占屏幕宽度的比例为:78%右侧主视图的高度占屏幕高度的比例为:77%找出线性关系1. 比例与手指移动距离的关系字比较丑 o(╯□╰)o。注意:式(1)中的 x 表示“手指移动距离”这个变量,和上面图中表示屏幕宽度的 x 意义不同。2. 矩形中心向右移动距离和手指移动距离相等实现侧滑1. 新建项目,在 StoryBoard 中新增一个 View Controller,并新增一个名为 HomeViewController 的 UIViewController 类,并在 StoryBoard 中完成绑定。2. 给 HomeViewController 设置背景颜色以示区分。也可以像我一样设一个大 Label 作为更明显的区分。3. 给 HomeViewController 拖放一个 UIPanGestureRecognizer 并绑定到代码。从右下角拖一个 Pan Gesture Recognizer 到主窗体上,这一步会让它与 HomeViewController.view 自动绑定。下图为第二步,绑定到代码。4. 编写代码实现效果:新建 Common.swift,存储屏幕宽度、高度:import UIKitstruct Common {static let screenWidth = UIScreen.mainScreen().applicationFrame.maxXstatic let screenHeight = UIScreen.mainScreen().applicationFrame.maxY}修改 ViewController:import UIKitclass ViewController: UIViewController {var homeViewController: HomeViewController!var distance: CGFloat = 0let FullDistance: CGFloat = 0.78let Proportion: CGFloat = 0.77override func viewDidLoad() {super.viewDidLoad()// 给主视图设置背景let imageView = UIImageView(image: UIImage(named: &back&))imageView.frame = UIScreen.mainScreen().boundsself.view.addSubview(imageView)// 通过 StoryBoard 取出 HomeViewController 的 view,放在背景视图上面homeViewController = UIStoryboard(name: &Main&, bundle: nil).instantiateViewControllerWithIdentifier(&HomeViewController&) as! HomeViewControllerself.view.addSubview(homeViewController.view)// 绑定 UIPanGestureRecognizerhomeViewController.panGesture.addTarget(self, action: Selector(&pan:&))}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}// 响应 UIPanGestureRecognizer 事件func pan(recongnizer: UIPanGestureRecognizer) {let x = recongnizer.translationInView(self.view).xlet trueDistance = distance + x // 实时距离// 如果 UIPanGestureRecognizer 结束,则激活自动停靠if recongnizer.state == UIGestureRecognizerState.Ended {if trueDistance & Common.screenWidth * (Proportion / 3) {showLeft()} else if trueDistance & Common.screenWidth * -(Proportion / 3) {showRight()} else {showHome()}return}// 计算缩放比例var proportion: CGFloat = recongnizer.view!.frame.origin.x &= 0 ? -1 : 1proportion *= trueDistance / Common.screenWidthproportion *= 1 - Proportionproportion /= 0.6proportion += 1if proportion
Void inself.homeViewController.view.center = CGPointMake(self.view.center.x + self.distance, self.view.center.y)self.homeViewController.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, proportion, proportion)}, completion: nil)}}5. 查看效果来源:吕文翰_JohnLui 的博客猿圈 (ID: CodePush )(←长按复制) 为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。(复制微信号,搜索公众号即可关注)iOS开发(iOSDevTip) 
 文章为作者独立观点,不代表微头条立场
的最新文章
四个月前,我从一所代码学校毕业,这所烂学校只教了我Ruby和Ruby on Rails的基本知识。一个星期后地址:/forum.php?mod=viewthread&浏览器一般缓存图片、CSS、JS等静态文件,因为这些文件的更新频率相对来说比较低,合理利用浏览器的缓存对网站文/加斯加的猿(简书作者)
原文链接:/p/8c1c1697c0体现了面向对象的特性,就是每个对象都控制着不同的特性,每个类控制动画一方面。这听起来是一个很明显的问题,但是它真这么简单吗?我听到过公司里的一些开发人员讨论这个问题。当时我的一位高级工每一个程序员都应当了解的11句话,你最同意哪一句?1. 技术只是解决问题的选择,而不是解决问题的根本我们可以文/minggo(简书作者)
原文链接:/p/b24d3829b多年来,我非常荣幸能和一些谦逊的公司和客户合作。我也因此有机会接触到各种不同的程序员—— 每个程序员都有自己原文链接 : Getting Started | Cardboard | Google Sevelopers作者:Jaminzzhang (刚刚在线博主联盟群成员)
地址:http://www.oncenote.co没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了。文/Azen(简书作者)
原文链接:/p/6d作为一个稚气未脱的,热心的19岁青年,我走进了谷歌——一家当时已有3000人的高科技公司——做好了尽自己最大文/Martin_wjl(简书作者)
原文链接:/p/af2d4▼最近小编看到一个忧桑的故事,那是一个腾讯前员工的故事,看完顿觉人艰不拆。原来互联网时代,最痛苦的事情不是找作者:yixiangboy
地址:http://blog.csdn.net/yixiangboy/artic来源:本文源自网络,版权归原作者所有每次一回家,看到各种亲戚就觉得不敢和他们说话,不敢提钱,不敢提工作,原因一.iPhone创建个人热点iPhone/iOS双环上网,即iPhone通过创建个人热点(Personal作者:Resory
地址:/p/21db20189c40序最近在作者:JanzTam
地址:/p/ede1a、U让学习iOS开发更简单!作者:兴宇是谁
地址:/p/1ae78a9379d4iOS中bl我曾经跟朋友开玩笑说,这个时代,有两种人的妻子应该要受人尊敬,第一种是军嫂,这是毫无争议的,第二种就是像我这虽然 Go 并不是一门新语言,不过最近两年来 Go 还是增加了很多有趣的特性,而且使用这门语言的知名项目的数我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使问这个问题的人都该打,先拖出去,赏一丈红~如果你是计算机学生或者意欲从事IT行业的人,那么再仗50大板!!为作者:Sindri的小巢
地址:/p/d0c7d9040c93作者:J_雨
地址:/p/5bb91ccc07e3侧滑删除是iO作者:Azen
地址:/p/a嗨大家,好久无论你是刚开始接触软件项目开发的新手程序员,还是一个正在寻找拓展技能的经验级软件工程师,都有许多学不完的新技随着Android、iOS以及Windows Phone等一系列移动操作系统的不断兴起,移动应用开发也逐渐成几个星期前,当我收到一个自称Someone712的人发给我的一条消息时,我决定要写一篇如何用编程赚钱的博客文作者:暮落晨曦
地址:/p/ce9bAFNetw作者:Liwjing
地址:/users/8df89a9d838我在谋杀自己的职业生涯。没错,很多人都这样说我。我的同事刚刚得知我即将离开公司的消息时,大多数表示理解。但让作者:Liwjing
地址:/users/8df89a9d838随着Android、iOS以及Windows Phone等一系列移动操作系统的不断兴起,移动应用开发也逐渐成你再优秀,也需要一个适合自己的舞台展示!程序员成为技术大牛前,是需要在实践中磨练的,所以面试就是你不得不过的iOSDevTip最新iOS、iPhone资讯,万名iOS开发者、swift开发、果粉聚集,参与技术讨论,整理开发技巧,分享创业经验!享受生活、热爱编程!热门文章最新文章iOSDevTip最新iOS、iPhone资讯,万名iOS开发者、swift开发、果粉聚集,参与技术讨论,整理开发技巧,分享创业经验!享受生活、热爱编程!&&&&Android 实现类似QQ侧滑菜单,实现左右侧滑 源码
Android 实现类似QQ侧滑菜单,实现左右侧滑 源码
Android 实现类似QQ侧滑菜单,实现左右侧滑 源码。具有iOS 7/8 parallax effect 风格的侧边菜单,类似于最新版qq的菜单效果。ReisdeMenu 创意灵感来自于Dribbble1还有2,而这个是Android版的ResideMenu,在视觉效果上部分参考了iOS版的RESideMenu
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
移动开发下载排行

我要回帖

更多关于 ios侧滑实现原理 的文章

 

随机推荐