UIScrollView学习指南
--前言
笔者结合自己的工作经验,梳理关于UIScrollView究竟需要掌握哪些知识才算是一个好手。至于具体的实施方案,网上资源很多,自行了解吧。
--正文
1、涉及到滚动和放大的功能,优先考虑使用原生的scrollView。相比于自己使用手势和view封装一个,不如使用原生的scrollView。
2、毕竟从UIView到UIScrollView是一个很大的创举。熟悉并理解scrollView的关键属性,很重要。这些属性比如:
(1)frame、contentSize、contentOffSet、contentInSet、indicatorStyle、pagingEnabled、minimunZoomScale、maximunZoomScale等等。
(2)回弹机制
3、UIScrollViewDelegate--熟悉这些方法被触发的条件以及调用顺序。然后结合tableView,尝试理解:
(1)tableView中图片加载逻辑的优化
(2)分页的实现方式
(3)重用
(4)瀑布流
4、AutoLayout的使用
(1)对于像UILabel这类的“内容支撑”控件。AutoLayout可以不明确指定其size相关的约束。
(2)UIScrollView的子控件布局时。借鉴tableViewCell的做法,在scrollView和其他子空间之间增加一个“contentView”。
(3)使得scrollView的frame随着其contentSize变化。
5、ScrollView常用的使用场景
(1)导航栏半透明(随着scrollView的滚动渐变)
(2)scrollView中的某些控件悬停(类似于tableView的sectionView的悬停效果)
(3)下拉头部图片放大
(4)图片无限轮播(一般与小圆点一起使用)
(5)图片查看器(左右切换、双击放大、捏合缩放等功能)
(6)scrollView的嵌套(可以使用手势的作用对象,决定最上面的scrollView滚动,下面的scrollView保持不动)
(7)scrollView的下拉效果(iOS10以后已经增加“refreshControl”属性)
(8)将scrollView作为底层的容器
UIScrollView学习指南的更多相关文章
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- 笔记——shell脚本学习指南
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...
- 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性
2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...
- [go语言学习指南]
内部分享,根据自己的经验,收集汇总的go语言学习指南. 适合新手入门. 可以通过这里进行下载.
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- 推荐10个很棒的AngularJS学习指南
AngularJS 是非常棒的JS框架,能够创建功能强大,动态功能的Web app.AngularJS自2009发布以来,已经广泛应用于Web 开发中.但是对想要学习Angular JS 的人而言,只 ...
- 项目管理之道--纪我的新书《PMP项目管理认证学习指南(第4版)》出版并预祝大卖!
新年伊始,我最新的项目管理书籍——<PMP项目管理认证学习指南(第4版)>也出版了,真是新年新气象啊!翻译英文书籍是一件任重道远的工作,除了要具备扎实的基本功,熟悉相关的领域外,还需要细致 ...
- Gulp学习指南之CSS合并、压缩与MD5命名及路径替换(转载)
本文转载自: Gulp学习指南之CSS合并.压缩与MD5命名及路径替换
- Android Wear(手表)开发 - 学习指南
版权声明:欢迎自由转载-非商用-非衍生-保持署名.作者:Benhero,博客地址:http://www.cnblogs.com/benhero/ Android Wear开发 - 学习指南 http: ...
随机推荐
- PHP 操作oracle数据库,select,insert into ,delete,update等
建完数据库,下面就是操作数据库啦 程序的根源无非是增删改查 首先最基础的查询 public function obtainduo(){ header("content-type:text/h ...
- 手把手教你做一个python+matplotlib的炫酷的数据可视化动图
1.效果图 2.注意: 上述资料是虚拟的,为了学习制作动图,构建的. 仅供学习, 不是真实数据,请别误传. 当自己需要对真实数据进行可视化时,可进行适当修改. 3.代码: #第1步:导出模块,固定 i ...
- Caffe 笔记 (一)caffe的层与数据结构
Caffe是纯粹的C++/CUDA架构,支持命令行.Python和MATLAB接口:可以在CPU和GPU直接无缝切换: Caffe::set_mode(Caffe::GPU); Caffe的优势 1. ...
- 剑指OFFER之合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 解决办法 1.递归方法: if(pHead1==NULL) return pHead2; els ...
- 折纸(folding)
问题 C: 折纸 时间限制: 1 Sec 内存限制: 128 MB[提交] [状态] 题目描述 现有一个W*H的矩形纸张,求至少要折多少次才能使矩形纸张变成w*h的矩形纸张.注意,每次的折痕都要平行 ...
- 117. 填充每个节点的下一个右侧节点指针 II
Q: 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右 ...
- 一些基础但有趣的shell脚本
一.打印9*9乘法表 #!/bin/bash for i in `seq 9` do for j in `seq $i` do echo -n "$i*$j=$[i*j]" don ...
- 解决ifarme在ios下无法使用
在第一层的config 添加 <access origin="*" /><allow-navigation href="*" />< ...
- BZOJ - 2038 小Z的袜子(普通莫队)
题目链接:小Z的袜子 题意:$n$只袜子,$m$个询问,每次回答有多大概率在$[L,R]$区间内抽到两只颜色相同的袜子 思路:普通莫队,如果两个询问左端点在一个块内,则按询问右端点排序,否则按照所在块 ...
- POJ - 1845 Sumdiv(分治)
题意:求$A^{B}$的所有约数之和$mod\ 9901$ 思路:由结论有,一个数$n$进行质因数分解得到$n={p_{1}}^{c_{1}} * {p_{2}}^{c_{2}} *...* {p_{ ...