滚动视图(UIScrollView)

简单介绍

1、UIScrollView滚动视图能够排列并显示超出自身显示范围的内容。

2、UIScrollView内部整合了多种手势来达到丰富的界面展示效果。

3、UITableView、UITextView都继承于UIScrollView。

UIScrollView例子

1、上下滚动:如信息界面或者设置界面。

2、左右滚动:如音乐播放器里面的专辑信息展示。

UIScrollView实现机制

1、视图被加入到父视图上进行显示。超出父视图边界的部分将被隐藏。

2、子视图在滚动视图中的实际位置满足公式:

CompositedPosition.x = View.frame.origin.x - Superview.bounds.origin.x;

CompositedPosition.y = View.frame.origin.y - Superview.bounds.origin.y;

UIScrollView初始化及使用

初始化

- (id)initWithFrame:(CGRect)frame;

经常使用属性

  • contentOffset:设置当前可见内容偏移位置

  • contentSize:设置当前内容空间大小

  • contentInset:设置内容空间偏移量

  • pagingEnabled:设置是否进行分页

  • scrollEnabled:设置能否够滚动

  • showsHorizontalScrollIndicator:设置是否显示横向位置指示器

  • showsVerticalScrollIndicator:设置是否现实纵向位置指示器

  • delegate:设置代理

  • directionalLockEnabled:设置是否锁定朝向

  • bounces:设置是否回弹

  • indicatorStyle:设置朝向指示器样式

  • minimumZoomScale:设置最小缩放

  • maximumZoomScale:设置最大缩放

ContentOffset(偏移量)、ContentSize(文本内容)示意图

UIScrollViewDelegate

1、通过实现UIScrollViewDelegate协议方法能够对UIScrollView内部大量事件进行监听。在方法内部运行自己定义操作

// 滚动中
- (void)scrollViewDidScroll:(UIScrollView *)scrollView; // 開始拖动
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView; // 结束拖动
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; // 停止滚动
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView; // 開始减速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView; // 停止减速
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView; // 滚动视图是否同意点击状态栏自己主动返回至顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView; // 滚动视图点击状态栏自己主动返回至顶部
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;

UIScrollVieweasy被忽略的小技巧

scrollsToTop属性

1、相信细心的开发人员都会发现scrollView自带一个功能,当用户点击顶部的状态栏时,scrollView的ContentOffset.y轴会自己主动滚动到初始位置返回顶部,通过scrollsToTop属性可进行配置,默认YES。

解决点击状态栏时ScrollView自己主动滚动到初始位置失效办法

1、返回功能对用户来说非常有用,尤其是在scrollView(TableView、WebView、CollectionView一切继承scrollView的控件)展示的内容非常多,当用户翻看非常久以后。想回到最顶部时,仅仅需单击一下顶部的状态栏位置就能够轻松返回到顶部(这里吐槽下,貌似非常多用户都不知道有这个功能)。而不用使劲用手滑动到顶部,但是功能在当前控制器有多个scrollView(TableView, WebView, CollectionView一切继承scrollView的控件)的时候就会失效。解决的方法就是将不须要的滚动视图的scrollsToTop属性置为NO就可以,仅仅保留最底层的滚动视图scrollsToTop属性为YES。

分页控件(UIPageControl)

1、UIPageControl称为分页控件,通常和UIScrollView配合使用,用于指示页面总数及当前页指示

UIPageControl例子

UIPageControl初始化方法

- (id)initWithFrame:(CGRect)frame;

UIPageControl经常使用属性

  • numberOfPages:设置显示总页数

  • currentPage:设置当前页数显示

  • pageIndicatorTintColor:设置总页数指示色

  • currentPageIndicatorTintColor:设置当前页指示色

  • hidesForSinglePage:设置当仅仅有一个界面的时候是否因此指示器,默觉得NO

OCUI界面设计:滚动视图与分页控件初探的更多相关文章

  1. 【NET】Winform分页控件初探

    public partial class WinFormPager : UserControl { ; /// <summary> /// 当前页 /// </summary> ...

  2. 基于WPF系统框架设计(10)-分页控件设计

    背景 最近要求项目组成员开发一个通用的分页组件,要求是这个组件简单易用,通用性,兼容现有框架MVVM模式,可是最后给我提交的成果勉强能够用,却欠少灵活性和框架兼容性. 设计的基本思想 传入数据源,总页 ...

  3. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  4. 基于存储过程的MVC开源分页控件--LYB.NET.SPPager

    摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...

  5. 基于存储过程的MVC开源分页控件

    基于存储过程的MVC开源分页控件--LYB.NET.SPPager 摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件M ...

  6. 分页控件AspNetPager学习笔记

    1.AspNetPager简介 AspNetPager是一款开源.简单易用.可定制化等等各种优点的Web分页控件. 2.使用方法 1)下载AspNetPager.dll文件(http://www.we ...

  7. iOS:分页控件UIPageControl的使用

    分页控件:UIPageControl   功能:通常搭配滚动视图一起使用,设置pagingEnabled=YES即可,UIScrollView会被分割成多个独立页面,用户的滚动体验则变成了页面翻转,一 ...

  8. 类似web风格的 Winform 分页控件

    背景 最近做一个Winform的小程序,需要用到分页,由于之前一直在用 TonyPagerForWinForm.dll ,但该库没有源代码,网上找的也不全面,索性就准备自己改造一个.在园子里翻了一下, ...

  9. 基于Bootstrap仿淘宝分页控件实现

    .header { cursor: pointer } p { margin: 3px 6px } th { background: lightblue; width: 20% } table { t ...

随机推荐

  1. 解决tpcc_load 报错 error while loading shared libraries: libmysqlclient.so.20

    在刚开始导入tpcc数据仓库时,可能会遇到 error while loading shared libraries: libmysqlclient.so.20这个错误,找不到库文件. 但是,通过fi ...

  2. myEclies项目导入Eclipse中常见问题

    需要配置Tomcat 左上方菜单 windosw > Prefrences TomCat JS文件报错 打开项目位置 找到 这个文件打开 删除这一段ok

  3. Jquery学习总结(3)——Jquery获取当前城市的天气信

    Jquery代码: function findWeather() {     var cityUrl = 'http://int.dpool.sina.com.cn/iplookup/iplookup ...

  4. ASP.NET-HttpPostedFileBase file为null的问题

    MVC使用Ajax.BeginForm上传图片时HttpPostedFileBase file为null,Request.Files获取不到文件,问题分析是页面中存在jquery.unobtrusiv ...

  5. 洛谷 P2393 yyy loves Maths II

    P2393 yyy loves Maths II 题目背景 上次蒟蒻redbag可把yyy气坏了,yyy说他只是小学生,蒟蒻redbag这次不坑他了. 题目描述 redbag给了yyy很多个数,要yy ...

  6. Maven导入ojdbc14.jar和ojdbc6.jar

    Maven导入ojdbc14.jar和ojdbc6.jar 学习了:http://blog.csdn.net/johon_medison/article/details/51689690 在 ‘运行’ ...

  7. c/c++常见试题

  8. Android中的单位

    Android中的单位 1.px 像素(pixels) VGA 480*640像素 (Video Graphics Array) QVGA 240*320像素 (Quarter VGA) HVGA 3 ...

  9. android选择图片或拍照图片上传到server(包含上传參数)

    在9ria论坛看到的.还没測试,先Mark与大家分享一下. 近期要搞一个项目,须要上传相冊和拍照的图片.不负所望,最终完毕了! 只是须要说明一下,事实上网上非常多教程拍照的图片.都是缩略图不是非常清晰 ...

  10. gist.github.com

    hosts添加:192.30.253.118 gist.github.com