为什么uiscrollview禁止滑动 添加了delegate后,滑动有时会出错

多个scrollview怎么继承一个UIScrollViewDelegate并响应
[问题点数:40分]
多个scrollview怎么继承一个UIScrollViewDelegate并响应
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。帮助企业打造成功软件!
热门搜索:
iOS界面开发之UIScrollView常见属性总结
iOS界面开发之UIScrollView常见属性总结
| 作者: |
09:58:31| 阅读 0次
概述:本文总结了iOS界面开发中UIScrollView类的常见属性、手势缩放和分页效果
界面开发中提供了一个非常重要的类UIScrollView,它能显示比屏幕更大的应用窗口的内容,从而不必担心受屏幕大小限制,翻到下一页浏览信息,能大大提升用户体验。下面笔者总结了UIScrollView的常见属性、手势缩放和分页效果:
一、 基本使用
UIScrollView可以用于显示多于一个屏幕的内容,超出屏幕范围的内容可以通过滑动进行查看
1.2常见属性
CGSize contentSize :设置UIScrollView的滚动范围
CGPoint contentOffset :UIScrollView当前滚动的位置
UIEdgeInsets contentInset :这个属性可以在四周增加滚动范围
1.3其他属性
BOOL bounces 是否有弹簧效果
BOOL scrollEnabled 是否能滚动
BOOL showsHorizontalScrollIndicator 是否显示水平方向的滚动条
BOOL showsVerticalScrollIndicator 是否显示垂直方向的滚动条
UIScrollViewIndicatorStyle indicatorStyle 设定滚动条的样式
BOOL dragging 是否正在被拖拽
BOOL tracking 当touch后还没有拖动的时候值是YES,否则NO
BOOL decelerating 是否正在减速
BOOL zooming 是否正在缩放
二、 手势缩放
设置UIScrollView的id delegate代理对象
设置minimumZoomScale :缩小的最小比例
设置maximumZoomScale :放大的最大比例
让代理对象实现下面的方法,返回需要缩放的视图控件
(UIView )viewForZoomingInScrollView:(UIScrollView )scrollView
跟缩放相关的常用方法还有
正在缩放的时候调用 -(void)scrollViewDidZoom:(UIScrollView )scrollView
缩放完毕的时候调用 -(void)scrollViewDidEndZooming:(UIScrollView )scrollView withView:(UIView *)view atScale:(float)scale
三、 分页效果
设置pagingEnabled=YES即可,UIScrollView会被分割成多个独立页面,用户的滚动体验则变成了页面翻转
一般会配合UIPageControl增强分页效果,UIPageControl常用属性:
NSInteger numberOfPages : 总页数
NSInteger currentPage : 当前的页码
BOOL hidesForSinglePage : 当只有一页的时候,是否要隐藏视图
监听UIPageControl的页面改变:
// 添加监听器
[pageControl addTarget:self action:@selector(pageChange:)
forControlEvents:UIControlEventValueChanged];
// 监听方法
(void)pageChange:(UIPageControl *)pageControl
本文转载自http://my.oschina.net/panyong/blog/179627
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:慧都控件网 []
本文地址:UIScrollViewDelegate
@protocol UIScrollViewDelegate
几个概念的理解:
contentSize:可滑动区域的大小
contentOffset:滑动视图里面的内容的相对位置
contentInset:滑动视图在外面的相对位置
1、只要view有滚动(不管是拖、拉、放大、缩小等导致)都会执行此函数
-(void)scrollViewDidScroll:(UIScrollView *)scrollV
2、将要开始拖拽,手指已经放在view上并准备拖动的那一刻
-(void)scrollViewWillBeginDragging:(UIScrollView
3、将要结束拖拽,手指已拖动过view并准备离开手指的那一刻,注意:当属性pagingEnabled为YES时,此函数不被调用
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint
*)targetContentO
4、已经结束拖拽,手指刚离开view的那一刻
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
5、view将要开始减速,view滑动之后有惯性
-(void)scrollViewWillBeginDecelerating:(UIScrollView
6、view已经停止滚动
-(void)scrollViewDidEndDecelerating:(UIScrollView
7、view的缩放
-(void)scrollViewDidZoom:(UIScrollView *)scrollView
8、有动画时调用
-(void)scrollViewDidEndScrollingAnimation:(UIScrollView
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。您所在的位置: &
iOS开发滚动视图UIScrollView
iOS开发滚动视图UIScrollView
本文分析了iOS开发中滚动视图UIScrollView的原理、简单使用和运行效果等,让大家深入理解了滚动视图UIScrollView的基本原理和用法。
滚动视图UIScrollView在滚动过程当中,其实是在修改坐标原点。
当手指触摸 后,ScrollView会暂时拦截触摸事件,并开启一个计时器。假如在计时器到点后没有发生手指移动事件,那么ScrollView发送、 tracking
events到被点击的subview;假如在计时器到点前发生了移动事件,那么ScrollView取消tracking,自己发生滚动。
UIScrollView&*sv&=&[[UIScrollView&alloc]&initWithFrame:CGMakeSize(0.0,0.0,self.view.frame.size.with,600)];&
一、深入分析UIScrollView
1、由于移动设备自身的限制,当某些视图滚出可见范围时,应该如何处理,如何重用可视的空间,减少内存的开销。
2、UIScrollView是UITableView和UITextView的超类。它的核心理念:UIScrollView 是一个可以在内容视图之上调整自己原点坐标的视图。它根据自身框架的大小,裁剪视图中的内容。通常框架是和应用程序窗口一样大。可以根据手指的移动,调整 原点的位置,这个原点位置就是滚动视图的偏移量。展示内容的视图会根据滚动视图的原点位置,开始绘制视图的内容。UIScrollView必须知道内容视图的大小,以便于知道什么时候停止,一般当滚动出内容的边界时,它就返回了。
UIScrollView必须知道一个触摸信号是打算滚动还是打算跟踪里面的子视图。为了达到这个目的,它临时中断了一个touch-down事件,通过建立一个定时器,在定时器开始行动之前,看是否触摸的手指做了任何的移动。假如定时器运行中没有任何的大的位置改变,UIScrollView就发送一个跟踪事件给触摸的子视图;如果在定时器消失前,用户拖动手指足够远,UIScrollView就取消子视图的任何跟踪事件,而滚动它自己。
子类可以通过重载touchesShouldBegin:withEvent:inContentView:、pagingEnabled和touchesShouldCancelInContentView:方法,从而影响滚动视图的滚动手势。
UIScrollView 类有一个delegate,需要适配的协议是UIScrollViewDelegate。为了缩放和平铺工作,代理必须实现 viewForZoomingInScrollView:和scrollViewDidEndZooming:withView:atScale:方法。
在UIScrollView对象中,不应该嵌入任何UIWebView和UITableView,否则会出现一些异常情况,因为两个对象的触摸事件可能被混合,从而被错误的处理。
二、UIScrollView简单使用
1、拖动一个UIScrollView控件到IB,在上面添加6个标签。设置第六个标签在可见范围外,可以直接设置坐标值。如下图所示:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' style="cursor:" src="/files/uploadimg/2130.jpg" alt="" />
2、将UIScrollView添加输出口,设置为theScroller,其它保留默认。
3、支持滚动
为给可滚动视图添加滚动功能,需要将属性contentSize设置为一个CGSize值。CGSize是一个简单的C语言数据结构,它包含高度和宽度,可使用函数CGSize(&with&,&height&)创建一个这样的对象。
例如要告诉该可滚动视图(theScroller)可水平和垂直分别滚动到280点和600点,可在viewDidLoad方法中编写如下代码:
self.theScroller.contentSize&=&CGSizeMake(280.0,600.0);&
注:我在测试的时候,没有添加该行代码,但是运行的时候仍能滚动。。。
原来开始我认为的滚动,只是bounces(橡皮筋)属性和IOS 6新增的AutoLayout属性的作用,设置了AutoLayout,而bounces属性默认是true的,当我按住键盘不放,往下滚动的时候,确实可以看到第六个标签。
所以真正要让ScrollView能够滚动,还是需要去设置contentSize的。
4、运行效果
498)this.width=498;' onmousewheel = 'javascript:return big(this)' style="cursor:" src="/files/uploadimg/2131.jpg" alt="" />
希望通过本文的简单介绍,读者朋友们对iOS开发中滚动视图UIScrollView有了一个清晰的认识和理解。【编辑推荐】【责任编辑: TEL:(010)】
关于&&的更多文章
开发者在代码开发和维护中,往往会遇到很多代码优化和内存优化的
既然强大的Android Studio来了,有什么理由不去用呢?
现在天气渐凉,秋意越来越浓厚了,上周,公司全体组织
当下移动互联网的发展势头迅猛,各式各样的App也在横
微软和诺基亚终于达成协议,微软将收购诺基亚设备与服
本书主要介绍采用Visual Studio 2005的C#语言为前台,SQL Server 2005数据库为后台的数据库系统开发技术。
全书分为15章,内容
Windows Phone专家
Android开发专家
51CTO旗下网站

我要回帖

更多关于 uiscrollview不能滑动 的文章

 

随机推荐