今天就讲下UIScrollView的一些事情,这个可以拖动的组件无论在应用还是游戏开发都会经常用到,所以我们就一定要更加熟悉它了。下面我们开始下手咯。
(1)初始化
一般的组件初始化都可以alloc和init来初始化,上一段代码初始化。
?
UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, 400)];
一般的初始化也都有很多方法,都可以确定组件的Frame,或者一些属性,比如UIButton的初始化可以确定Button的类型。当然,我比较提倡大家用代码来写,这样比较了解整个代码执行的流程,而不是利用IB来弄布局,确实很多人都用IB来布局会省很多时间,但这个因人而异,我比较提倡纯代码写。
(2)滚动属性
UIScrollView的最大属性就是可以滚动,那种效果很好看,其实滚动的效果主要的原理是修改他的坐标,准确的讲是修改原点坐标,而UIScrollView跟其他组件的都一样,有自己的delegate,在.h文件中要继承UIScrollView的delegate然后在.m文件的viewDidLoad设置的delegate为self。如下:
?
sv.pagingEnabled = YES;
sv.backgroundColor = [UIColor blueColor];
sv.showsVerticalScrollIndicator = NO;
sv.showsHorizontalScrollIndicator = NO;
sv.delegate = self;
CGSize newSize = CGSizeMake(self.view.frame.size.width * 2, self.view.frame.size.height);
[sv setContentSize:newSize];
[self.view addSubview: sv];
在上面的代码中,一定要设置UIScrollView的pagingEnable为YES。不然你就是设置好了其他属性,它还是无法拖动,接下去的分别是设置背景颜色和是否显示水平和竖直拖动条,最后最重要的设置他的ContentSize,ContentSize的意思就是它所有内容的大小,这个和它的Frame是不一样的,只有ContentSize的大小大于ContentSize这样才可以支持拖动。
(3)结合UIPageControl做新闻翻页效果
初始化UIPageControl的方法都很简单,就是上面讲的alloc和init,不过大家要记住的一点就是如果你定义了全局变量一定要在delloc那里释放掉。
UIPageControl有一个userInteractionEnabled你可以设置它为NO。就是点击的时候它不调用任何方法。然后设置它的currentPage 为0,并把它加到view上去。
接下来在UIScrollView的delegate方法:
?
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
在这里你可以写上关于UIPageControl的页面设置的算法。如下
?
int index = fabs(scrollView.contentOffset.x) / scrollView.frame.size.width;
pageControl.currentPage = index;
(4)其他的
UIScrollView还支持处理缩放的动作,比如图片的缩小或者地图。
但是必须实现它的委托viewForZoomingInScrollView:
scrollViewDidEndZooming:withView:atScale:然后它的两个属性maximumZoomScale和minimumZoomScale 要不一样。这样就能基本实现图片的缩放了。
好了,今天讲UIScrollView和UIPageControl就到这里咯,希望大家都能理解。欢迎拍砖。
附加一个photo的利用UIScrollView实现的demo给大家:http://files.cnblogs.com/huangdongcheng/PagePhotosDemo.zip
更多
http://www.cnblogs.com/zhw511006/archive/2011/01/09/1931339.html
http://www.cnblogs.com/pengyingh/articles/2429790.html
http://www.cnblogs.com/woainilsr/archive/2012/03/28/2421881.html
http://www.cnblogs.com/neozhu/archive/2012/03/30/2425224.html
http://www.cnblogs.com/didiaodexi/articles/2363561.html
http://www.1000phone.net/forum.php?mod=viewthread&tid=7704
http://www.1000phone.net/forum.php?mod=viewthread&tid=8819
http://www.1000phone.net/forum.php?mod=viewthread&tid=8817
http://www.1000phone.net/forum.php?mod=viewthread&tid=3922
http://www.1000phone.net/forum.php?mod=viewthread&tid=2898 ?
分享到:
相关推荐
UIScrollview 循环滚动 手势 NSTimer
使用Swfit扩展为UIView添加随UIScrollView滚动产生视差效果
【iphone应用开发】Iphone应用开发之五: UIScrollView的详细讲解
自定义view,实现UIScrollView自动滚动和手动滚动的结合
UIScrollview循环滚动,开启NSTimer可以自动循环滚动,拖曳时NSTimer停止,拖曳停止时NSTimer开启
UIScrollView滚动视图的无限循环切换,定时器的自动顺序,逆序图片播放
又再UIScrollerView中添加了一个UISlider的组件,在手势滑动的过程中,很难滑动到UISlider这个控件,经常是滑动的时候UIScrollerView进行了滚动, 而UISlider这个控件没有滑动,让人很抓狂。 上网具体去了解了一下...
主要介绍了iOS UIScrollView滚动视图/无限循环滚动/自动滚动,需要的朋友可以参考下
所用控件:UIScrollView、UIPageControl。实现页面视图滚动缩放效果。
UIScrollview 图片无缝连续自动滚动 图片每隔2秒自动滚动一次
本Deno用scrollView很简单的实现了图片的无限循环滚动,且支持pageControl.zip
iphone uiscrollview 无缝循环滚动
uiscrollview循环滚动
UIScrollView * headScrollView; UIPageControl * pageControl; NSArray * colorArray; NSTimer * myTimer; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self...
MMScrollPresenter, 用于分页UIViews的iOS自定义UIScrollView控件 MMScrollPresenter 描述MMScrollPresenter是用于iOS开发的控件,它接受MMScrollPages的array 并显示在你的UIScrollView中。我最初是在命运应用中的...
UIScrollView、UIScrollView基本用法、UIScrollView详解,UIScrollView常用方法
UIScrollView循环滚动
给UIScrollView的子控件添加AutoLayout约束和其他普通的控件不同,因为scrollView需要根据子控件的尺寸和距离周围的边距来计算contentSize.#####UIScrollView添加约束的正确方式如下:首先,scrollView自身的约束...