9.ios之UIScrollView - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

9.ios之UIScrollView

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:45


什么是UIScrollView


?移动设备的屏幕大年夜小是极其有限的,是以直接展示在用户眼前的内容也相当有限
?
?当展示的内容较多,超出一个屏幕时,用户可经由过程滚着手势来查看屏幕以外的内容
?
?通俗的UIView不具备滚动功能,不克不及显示过多的内容
?
?UIScrollView是一个可以或许滚动的视图控件,可以用来展示大年夜量的内容,并且可以经由过程滚动查看所有的内容
?举例:手机上的“设置”、其他示例法度榜样


UIScrollView的根本应用


?UIScrollView的用法很简单
?将须要展示的内容添加到UIScrollView中



UIScrollView无法滚动的解决办法

?如不雅UIScrollView无法滚动,可能是以下原因:
?没有设置contentSize
?设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺寸,也就是告诉它滚动典范围(能滚多远,滚到哪里是尽头)
?scrollEnabled = NO
?没有接收到触摸事宜:userInteractionEnabled = NO
?没有撤消autolayout功能(要想scrollView滚动,必须撤消autolayout)
UIScrollView的其他属性





?

?@property(nonatomic)CGPointcontentOffset;
?这个属性用来表示UIScrollView滚动的地位
?@property(nonatomic)CGSizecontentSize;
?这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)
?
?@property(nonatomic)UIEdgeInsetscontentInset;
?这个属性可以或许在UIScrollView的4周增长额外的滚动区域
[img]http://img.blog.csdn.net/20150106213613531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVuZzE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
?设置UIScrollView是否须要弹簧效不雅
?@property(nonatomic,getter=isScrollEnabled)BOOLscrollEnabled;
?设置UIScrollView是否能滚动
?@property(nonatomic)BOOLshowsHorizontalScrollIndicator;
?
?是否显示程度滚动条
?

?@property(nonatomic)BOOLshowsVerticalScrollIndicator;
?@property(nonatomic)BOOLbounces;
?是否显示垂直滚动条
内容缩放
UIScrollView的常见属性


?有些时刻,我们可能要对某些内容进论述势缩放,如下图所示

UIScrollView不仅能滚动显示大年夜量内容,还能对其内容进行缩放处理
也就是说,要完成缩放功能的话,只须要将须要缩放的内容添加到UIScrollView中

UIScrollView的缩放道理



?当用户在UIScrollView身上应用捏合手势时,UIScrollView会给代理发送一条消息,询问代劳毕竟要缩放本身内部的哪一个子控件(哪一块内容)
[img]http://img.blog.csdn.net/20150106215410149?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVuZzE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
[img]http://img.blog.csdn.net/20150106213936343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVuZzE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
缩放实现步调
1.设置UIScrollView的id<UISCrollViewDelegate>delegate代劳对象
2.设置minimumZoomScale:缩小的最小比例
3.设置maximumZoomScale:放大年夜的最大年夜比例
self.scrollView.delegate =self;
4.让代劳对象实现下面的办法,返回须要缩放的视图控件
?也就是说,要想监听UIScrollView的滚动过程,就必须先给UIScrollView设置一个代劳对象,然后经由过程代劳得知UIScrollView的滚动过程
- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView;
?跟缩放相干的其他代劳办法
?缩放完毕的时刻调用
-(void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
?正在缩放的时刻调用
-(void)scrollViewDidZoom:(UIScrollView *)scrollView


分页
?只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被瓜分成多个自力页面,琅绫擎的内容就能进行分页展示
?
?一般会合营UIPageControl加强分页效不雅,UIPageControl常用属性如下
?一共有若干页
@property(nonatomic)NSIntegernumberOfPages;
?当前显示的页码
@property(nonatomic)NSIntegercurrentPage;
?只有一页时,是否须要隐蔽页码指导器
@property(nonatomic)BOOLhidesForSinglePage;
?其他页码指导器的色彩
@property(nonatomic,retain)UIColor *pageIndicatorTintColor;
?当前页码指导器的色彩

@property(nonatomic,retain)UIColor *currentPageIndicatorTintColor;


UIScrollView的代收成delegate)

?很多时刻,我们想在UIScrollView正在滚动或 滚动到某个地位 或者 停止滚动 时髦一些特定的操作
?
?要想完成上述功能,前提前提就是可以或许监听到UIScrollView的┞符个滚动过程
?当UIScrollView产生一系列的滚动操作时,会主动通知它的代收成delegate)对象,给它的代理发送响应的消息,让代劳得知它的滚动情况
?
[img]http://img.blog.csdn.net/20150106215327328?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVuZzE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
?UIScrollView将delegate须要实现的办法都定义在了UIScrollViewDelegate协定中,是以要想成为UIScrollView的delegate,必须遵守UIScrollViewDelegate协定,然后实现协定中响应的办法,就可以监听UIScrollView的滚动过程了


[img]http://img.blog.csdn.net/20150106215507245?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVuZzE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

[img]http://img.blog.csdn.net/20150106215544826?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVuZzE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

UIScrollView和控制器
?一般情况下,就设置UIScrollView地点的┞菲握器为 UIScrollView的delegate
?
?设置控制器为UIScrollView的delegate有2种办法:
?经由过程代码(self就是控制器)
?经由过程storyboard拖线(右击UIScrollView)


[img]http://img.blog.csdn.net/20150106215755133?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVuZzE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

?然后,控制器应当遵守UIScrollViewDelegate协定
?最后,实现协定中定义的相干办法

相关案例查看更多