swift uistackviewcrollerview有哪些动画

ios规划界面是分层的思想,明白这句话。基本也就掌握ios开发的真谛了下面看一下scrollView如何实现界面滑动的。首先我先简单做一个两个图层的UI。所以我们需要先声明一个scrollView.然后再在scrollView上面进行操作废话不多说。直接上代码var scroller = UIScrollView()scroller.frame = self.view.boundsscroller.contentSize = CGSizeMake(CGFloat(pageWidth), CGFloat(pageHght))scroller.pagingEnabled = truescroller.showsHorizontalScrollIndicator = truescroller.showsVerticalScrollIndicator = truescroller.scrollsToTop = trueself.view.addSubview(scroller)以上就做好了第一层视图scrollView下面再做第二层view对于第二层你想做什么。就看你自己喽。不过提示一下。再加第二层视图的时候。要注意在第一层视图上面添加。晒一下我某个程序的代码scroller.addSubview(temperatureLabel)scroller.addSubview(temperatureLineChart)scroller.addSubview(humidityLabel)scroller.addSubview(humidityLineChart)scroller.addSubview(methaneLabel)scroller.addSubview(methaneLineChart搞定。注意ios开发的图层概念如果在原先图层添加self.view.addView()会把之前的图层给覆盖掉,本程序里scrollView将失去作用。未完待续。下一节讲一下,怎么把scrollView做的逼格很高。
无相关信息swift scrollView滑动篇 - 推酷
swift scrollView滑动篇
ios规划界面是分层的思想,明白这句话。基本也就掌握ios开发的真谛了
下面看一下scrollView如何实现界面滑动的。
首先我先简单做一个两个图层的UI。
所以我们需要先声明一个scrollView.然后再在scrollView上面进行操作
废话不多说。直接上代码
var scroller = UIScrollView()
scroller.frame = self.view.bounds
scroller.contentSize = CGSizeMake(CGFloat(pageWidth), CGFloat(pageHght))
scroller.pagingEnabled = true
scroller.showsHorizontalScrollIndicator = true
scroller.showsVerticalScrollIndicator = true
scroller.scrollsToTop = true
self.view.addSubview(scroller)
以上就做好了第一层视图scrollView
下面再做第二层view
对于第二层你想做什么。就看你自己喽。
不过提示一下。再加第二层视图的时候。要注意在第一层视图上面添加。
晒一下我某个程序的代码
scroller.addSubview(temperatureLabel)
scroller.addSubview(temperatureLineChart)
scroller.addSubview(humidityLabel)
scroller.addSubview(humidityLineChart)
scroller.addSubview(methaneLabel)
scroller.addSubview(methaneLineChart
搞定。注意ios开发的图层概念
如果在原先图层添加
self.view.addView()
会把之前的图层给覆盖掉,本程序里scrollView将失去作用。
未完待续。下一节讲一下,怎么把scrollView做的逼格很高。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致&&&&UIScrollerView+TableView+删除
&UIScrollerView+TableView+删除
UIScrollerView加多个TableView 并有删除增加功能
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
移动开发下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
UIScrollerView+TableView+删除
所需积分:10
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
UIScrollerView+TableView+删除
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员下面介绍pageControl结合ScrollView实现连续滑动翻页的效果,ScrollView我们在应用开发中经常用到,以g这种翻页效果还是很好看的,如下图所示:
通过这个例子,我们重点学习UIScrollView。UIScrollView滚动的效果主要的原理是修改他的坐标,准确的讲是修改原点坐标,这一点我们在下面代码中自行体会。在动手创建工程之前,先了解以下几点:
UIScrollView学习要点
1. 注意只有UIScrollView,没有UIScrollViewController。
UiScrollView同许多控件一样有自己的delegate,但它不像UIView或TabelViewController有自带的ViewController。
一般实现方式是把包含scrollView的UIView对应的UIViewController实现UIScrollViewDelegate。如下图所示。
UIScrollViewDelegate包含了UIScrollView的生命周期方法,如&scrollViewDidScroll(滑动后),scrollViewWillBeginDragging(滑动开始),scrollViewDidEndDecelerating(滑动结束)等方法,用于监听页面拖拽。
2.&一次滑动,scrollView的scrollViewDidScroll会执行多次。
因此一般需要一个标识符来判断是否要执行scrollViewDidScroll中的自定义代码。
3. UIScrollView属性:参考
1.同上一个例子中布局storyBoard,不同的是,使用UIScrollView而不是UIView。
2.设置TestViewController.h
& & 如下图所示:
&&&&在接口声明中,参考UIScrollView学习要点1,继承UIScrollViewDelegate,后面在TestViewController.m中实现scrollViewDidScroll等方法。
&&&&参考要点2,声明私有属性:pageControlUsed标识符。
&&&&关联stroyboard中ScrollView和PageControl至代码中,如图所示。pageControl还要关联Action
&&&&声明一个Array的viewControllers属性,做为要显示的多个页面的载体。
3.实现要显示的页面
&&&&下面实现所显示的彩色页面。每次翻页时,会提前加载下一个页面,颜色和中间的label内容与page数相关,这是调用自定义的initWithPageNumber方法生成。
&&&&这个不是理解重点。不做解说。
3.1创建一个file继承自UIViewController,同时勾选伴随生成xib选项。
3.2将这个xib按下以设置,size:Freeform(这样才可以改变大小),status Bar:none(隐藏状态条),设置尺寸width:320,height:400.
3.3设置MyPageViewController.h
&&&&添加私有属性pageNumber,关联PageLabel,声明initWithPageNumber方法。
&&&&&3.4MyPageViewController.m文件内容如下:
4.翻页实现
&&&&4.1设置一个静态变量KNumberOfPages,这是总页数引入MyPageViewController.h声明@synthesize
4.2在TestViewController.m的viewDidLoad方法做UIScrollView和PageControl的初始化。
& &&scrollView的初始化中,scrollView.contentSize是它的拖动范围。因为要翻7页,所以最后UIScrollView的宽度将变为7个屏幕宽。另外高度与要显示的页面一样高(MyPageViewController.xib的高度设置为400),如果scrollView的高度&400,最后出来的效果是上下可以拖动。
& &pageControl的初始化中,&pageControl.numberOfPages=KNumberOfPages//出现7个点pageControl.currentPage=0;//默认高亮在第0个点
&&&&loadScrollViewWithPage方法实现如下,如果页面已经被加载过,不会重复生成。
4.3UIScrollViewDelegate的生命周期及scrollViewDidScroll的多次加载
&&&&在ScrollView的初始化中,设置了scrollView.delegate=self。且TestViewController.h中继承了UIScrollerViewDelegate。在TestViewController.m实现了scrollViewDidScroll(滑动后),scrollViewWillBeginDragging(滑动开始),scrollViewDidEndDecelerating(滑动结束)方法,用于监听页面拖拽。
&&&&scrollViewDidScroll在两种动作下会被触发,点击pageControl的点、或左右滑动scrollView区域。
&&&&1.左右滑动scrollView区域:只触发scrollViewDidScroll方法
&&&&2.点击pageControl的点:触发changePage方法,同时触发scrollViewDidScroll方法。changePage和scrollViewDidScroll中完成的是同样的事情。区别是scrollViewDidScroll中的page需要通过计算得出。
&&&&因此在changePage中会把pageControlUsed=YES,这样在scrollViewDidScroll中就会直接返回。而在滑动开始和结束时将pageControlUsed重置为NO.
&&&&另外scrollViewDidScroll会执行多次(可能是滑动操作是持续的,这个过程中一直触发scroll方法)。是在这个过程中完成第二个page的加载的,我们通过计算通过pageControl.currentPage是否等于计算出的page,来确定pageControlUsed=YES的时间点。
首先引用别人分析一篇不错的文章,同时也感谢这位朋友的分享:/iphonedev/sdk/03.html &&
&在滚动过程当中,其实是在修改原点坐标。当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么 scroll view 发送 tracking events 到被点击的 subview。假如在计时器到点前发生了移动事件,那么 scroll view 取消 tracking 自己发生滚动。
&&& 子类可以重载
touchesShouldBegin:withEvent:inContentView: 决定自己是否接收 touch 事件pagingEnabled:当值是 YES 会自动滚动到 subview 的边界,默认是NOtouchesShouldCancelInContentView: 开始发送 tracking messages 消息给 subview 的时候调用这个方法,决定是否发送 tracking messages 消息到subview。假如返回 NO,发送。YES 则不发送。假如 canCancelContentTouches属性是NO,则不调用这个方法来影响如何处理滚动手势。
&&& scroll view 还处理缩放和平移手势,要实现缩放和平移,必须实现委托 viewForZoomingInScrollView:、scrollViewDidEndZooming:withView:atScale:两个方法。另外 maximumZoomScale和minimumZoomScale 两个属性要不一样。
几个属性介绍
tracking当 touch 后还没有拖动的时候值是YES,否则NO
zoomBouncing当内容放大到最大或者最小的时候值是 YES,否则 NO
zooming当正在缩放的时候值是 YES,否则 NO
decelerating当滚动后,手指放开但是还在继续滚动中。这个时候是 YES,其它时候是 NO
decelerationRate设置手指放开后的减速率
maximumZoomScale一个浮点数,表示能放最大的倍数
minimumZoomScale&一个浮点数,表示能缩最小的倍数
pagingEnabled当值是 YES 会自动滚动到 subview 的边界。默认是NO
scrollEnabled决定是否可以滚动
delaysContentTouches是个布尔值,当值是 YES 的时候,用户触碰开始,scroll view要延迟一会,看看是否用户有意图滚动。假如滚动了,那么捕捉 touch-down 事件,否则就不捕捉。假如值是NO,当用户触碰, scroll view 会立即触发 touchesShouldBegin:withEvent:inContentView:,默认是 YES
canCancelContentTouches当值是 YES 的时候,用户触碰后,然后在一定时间内没有移动,scrollView 发送 tracking events,然后用户移动手指足够长度触发滚动事件,这个时候,scrollView 发送了 touchesCancelled:withEvent: 到 subview,然后 scroView 开始滚动。假如值是 NO,scrollView 发送 tracking events 后,就算用户移动手指,scrollView 也不会滚动。
contentSize里面内容的大小,也就是可以滚动的大小,默认是0,没有滚动效果。
showsHorizontalScrollIndicator滚动时是否显示水平滚动条
showsVerticalScrollIndicator滚动时是否显示垂直滚动条
bounces默认是 yes,就是滚动超过边界会反弹有反弹回来的效果。假如是 NO,那么滚动到达边界会立刻停止。
bouncesZoom和 bounces 类似,区别在于:这个效果反映在缩放上面,假如缩放超过最大缩放,那么会反弹效果;假如是 NO,则到达最大或者最小的时候立即停止。
directionalLockEnabled默认是 NO,可以在垂直和水平方向同时运动。当值是 YES 时,假如一开始是垂直或者是水平运动,那么接下来会锁定另外一个方向的滚动。 假如一开始是对角方向滚动,则不会禁止某个方向
indicatorStyle滚动条的样式,基本只是设置颜色。总共3个颜色:默认、黑、白
scrollIndicatorInsets设置滚动条的位置
最后加上,我刚定的一个例子,可以缩放,及对使用的代理方法加了注释
//& ScrollViewViewController.m
//& ScrollView
//& Created by ch_soft on 11-11-8.
//& Copyright 2011年&__MyCompanyName__. All rights reserved.
#import"ScrollViewViewController.h"
#import"CustomA.h"
#import"CustomB.h"
@implementation&ScrollViewViewController
- (void)didReceiveMemoryWarning
& &// Releases the view if it doesn't have a superview.
& & [superdidReceiveMemoryWarning];
& &// Release any cached data, images, etc that aren't in use.
#pragma mark - View lifecycle
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
& &scrollview&=[[UIScrollViewalloc]initWithFrame:CGRectMake(50,0,200,400)];
& &&scrollview.contentSize=CGSizeMake(400,400);
& &scrollview.backgroundColor=[UIColororangeColor];
& &scrollview.pagingEnabled=YES;//是否自己动适应
& &viewA=[[CustomAalloc]initWithFrame:CGRectMake(50,0,100,400)];
& &viewA.backgroundColor=[UIColorblueColor];
& & [scrollviewaddSubview:viewA];
& & [viewArelease];
& &&CustomB&* viewB=[[CustomB&alloc]&initWithFrame:CGRectMake(250,0,100,400)];
& & viewB.backgroundColor=[UIColoryellowColor];
& & [scrollviewaddSubview:viewB];
& & [viewB&release];
& & [self.viewaddSubview:scrollview];
& &scrollview.maximumZoomScale=2.0;
& &scrollview.minimumZoomScale=0.5;
//& & scrollview.decelerationRate=1;
& &scrollview.delegate=self;
& &//canCancelContentTouches:YES-移动手指足够长度触发滚动事件,NO-scrollView发送&tracking events&后,就算用户移动手指,scrollView也不会滚动。
& &scrollview.canCancelContentTouches=NO;
& &&//当值是&YES的时候,用户触碰开始.要延迟一会,看看是否用户有意图滚动。假如滚动了,那么捕捉&touch-down事件,否则就不捕捉。假如值是NO,当用户触碰,&scroll view会立即触发
& &scrollview.delaysContentTouches=YES;
& & [scrollviewrelease];
& & [superviewDidLoad];
#pragma mark UIScrollViewDelegate
//只要滚动了就会触发
- (void)scrollViewDidScroll:(UIScrollView&*)scrollV& &
//& & NSLog(@" scrollViewDidScroll");
& &&NSLog(@"ContentOffset& x is& %f,yis %f",scrollView.contentOffset.x,scrollView.contentOffset.y);
//开始拖拽视图
- (void)scrollViewWillBeginDragging:(UIScrollView&*)scrollV& &
& &NSLog(@"scrollViewWillBeginDragging");
//完成拖拽
- (void)scrollViewDidEndDragging:(UIScrollView&*)scrollView willDecelerate:(BOOL)&
& &NSLog(@"scrollViewDidEndDragging");
//将开始降速时
- (void)scrollViewWillBeginDecelerating:(UIScrollView&*)scrollV& &
& &NSLog(@"scrollViewWillBeginDecelerating");
//减速停止了时执行,手触摸时执行执行
- (void)scrollViewDidEndDecelerating:(UIScrollView&*)scrollV& &
& &NSLog(@"scrollViewDidEndDecelerating");
//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView&*)scrollV
& &NSLog(@"scrollViewDidEndScrollingAnimation");
//设置放大缩小的视图,要是uiscrollview的subview
- (UIView&*)viewForZoomingInScrollView:(UIScrollView&*)scrollV& &
& &NSLog(@"viewForZoomingInScrollView");
& &&return&viewA;
//完成放大缩小时调用
- (void)scrollViewDidEndZooming:(UIScrollView&*)scrollView withView:(UIView&*)view atScale:(float)&
& &&viewA.frame=CGRectMake(50,0,100,400);
& &NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");
}// scale between minimum and maximum. called after any 'bounce' animations
//如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView&*)scrollV& &
& & NSLog(@"scrollViewShouldScrollToTop");
& &returnYES;
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollV& & &
& & NSLog(@"scrollViewDidScrollToTop");
- (void)viewDidUnload
& & [super&viewDidUnload];
& &// Release any retained subviews of the main view.
& &// e.g. self.myOutlet =
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
& &// Return YES for supported orientations
& &&return&(interfaceOrientation == UIInterfaceOrientationPortrait);
阅读(...) 评论()swift(14)
ios规划界面是分层的思想,明白这句话。基本也就掌握ios开发的真谛了
下面看一下scrollView如何实现界面滑动的。
首先我先简单做一个两个图层的UI。
所以我们需要先声明一个scrollView.然后再在scrollView上面进行操作
废话不多说。直接上代码
var scroller = UIScrollView()
scroller.frame = self.view.bounds
scroller.contentSize = CGSizeMake(CGFloat(pageWidth), CGFloat(pageHght))
scroller.pagingEnabled = true
scroller.showsHorizontalScrollIndicator = true
scroller.showsVerticalScrollIndicator = true
scroller.scrollsToTop = true
self.view.addSubview(scroller)
以上就做好了第一层视图scrollView
下面再做第二层view
对于第二层你想做什么。就看你自己喽。
不过提示一下。再加第二层视图的时候。要注意在第一层视图上面添加。
晒一下我某个程序的代码
scroller.addSubview(temperatureLabel)
scroller.addSubview(temperatureLineChart)
scroller.addSubview(humidityLabel)
scroller.addSubview(humidityLineChart)
scroller.addSubview(methaneLabel)
scroller.addSubview(methaneLineChart
搞定。注意ios开发的图层概念
如果在原先图层添加
self.view.addView()
会把之前的图层给覆盖掉,本程序里scrollView将失去作用。
未完待续。下一节讲一下,怎么把scrollView做的逼格很高。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8728次
排名:千里之外
原创:23篇
(2)(6)(5)(1)(1)(7)(1)}

我要回帖

更多关于 swift uipickview 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信