12-24 关于UIScroView 控件的学习
在iOS开发中,滚动视图(UIScrollView)通常用于显示内容尺寸大于屏幕尺寸的视图。滚动视图有以下两个主要作用:
- 让用户可以通过拖拽手势来观看想看到的内容
- 让用户可以通过捏合手势来放大或缩小观看的内容
在iOS应用中常见的表格视图(UITableView)就继承自滚动视图,并因此可以通过上下滚动来显示更多的内容
UIScrollView
也和其他视图一样,应该被一个控制器管理或者添加到某个视图层级中。想要完成滚动功能还需要对UIScrollView
进行以下两步设置:
必须设置
UIScrollView
的contentSize
属性,它提供了UIScrollView
的内容的大小,也就是可以滚动的区域的大小。必须为
UIScrollView
添加一个或多个用于显示和滚动的子视图,这些视图提供了UIScrollView
显示的内容。
代码如下:
当你启动应用后,你会发现图片初始显示区域是它左上角的部分。
如下
这是因为滚动视图的bounds
的起点默认为(0, 0),代表了左上角。如果你想改变启动后显示的位置,你需要更改滚动视图的bounds
的起点。因为这种需求经常被提起,所以UIScrollView
专门提供了一个属性contentOffset
用来实现这种需求。
在代码中添加如下语句,注意添加在设置autoresizingMask语句之后。
scrollView.contentOffset = CGPoint(x: 1000, y: 450)
重新运行应用,你会发现一开始就会显示图片的另一部分而不是左上角。你可以通过这种方式来决定程序启动后将要显示的内容。
也可以通过
self.scrollView.contentInset 这个属性来调整内容间距,如下
self.scrollView.contentInset = UIEdgeInsetsMake(50, 50, 50, 50);
效果如下
也可以通过self.scrollView.showsHorizontalScrollIndicator等属性来关闭或者打开水平,竖直滚动条,代码如下:
self.scrollView.showsHorizontalScrollIndicator = NO;
self.scrollView.showsVerticalScrollIndicator = NO;
弹簧效果的关闭,如下:
self.scrollView.bounces = NO;
----------------------------------------分割线--------------------------------------
利用代码实现滚动功能:
建立按钮控件,设置点击后触发的事件,代码如下:
- (IBAction)gunBtnClick {
CGPoint offsetOld = self.scrollView.contentOffset;
offsetOld.x -= 50;
offsetOld.y -= 50;
[UIView animateWithDuration:1.0 animations:^{
self.scrollView.contentOffset = offsetOld;
}];
}
也可以用set方法设置srcollView的contentOffset,并且直接加上动画效果:
[self.scrollView setContentOffset:offsetNew animated:YES]
这种方法的动画比较快,且无法设定。
12-24 关于UIScroView 控件的学习的更多相关文章
- 分页控件AspNetPager学习笔记
1.AspNetPager简介 AspNetPager是一款开源.简单易用.可定制化等等各种优点的Web分页控件. 2.使用方法 1)下载AspNetPager.dll文件(http://www.we ...
- 分享12款 JavaScript 表格控件(DataGrid)
JavaScript 表格控件可以操作大数据集的 HTML 表格,提供各种功能,如分页.排序.过滤以及行编辑.在本文中,我们整理了13个最好的 JavaScript 表格插件分享给开发人员,开发者可以 ...
- 12款 JavaScript 表格控件(DataGrid)
JavaScript 表格控件可以操作大数据集的 HTML表格,提供各种功能,如分页.排序.过滤以及行编辑.在本文中,我们整理了13个最好的 JavaScript 表格插件分享给开发人员,开发者可以很 ...
- 图表控件的学习===》hightChart 和 Chartjs的使用
hightChart : 比较旧的图表控件 商业需要授权 Chartjs 免费开源 刚开始使用了下 hightchart 然后参考示例 建了对应的参数配置的类, 也顺利的集合到后台动态传输. 后 ...
- 【Android开发学习笔记】【第四课】基础控件的学习
通过一个简单的例子来学习下面几种控件: 1.TextView:简单的文本显示控件 2.EditText:可以编辑的文本框 3.Button:按钮 4.Menu:这里指的是系统的Menu 5.Toast ...
- iOS界面设计之基础控件的学习 --- UITextField
学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...
- 跟我一起玩Win32开发(12):使用控件——单选按钮
今天,咱们还是接着玩“控件斗地主”,这是我原创的超级游戏,有益身心健康,玩一朝,十年少. 哦,对,脑细胞极速运动了一下,想起了一个问题,这个破问题虽然网上有很多种解决方案,但是,并没有让所有人都解决问 ...
- jquery控件的学习
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C#ActiveX控件开发学习
一:C#ActiveX控件开发注意事项 1:C#开发的ActiveX控件只可在装有Framework的系统上才能用. 2:只有IE浏览器支持. 3:初次安装需要导入代码签名证书及其证书链的方式, ...
随机推荐
- iOS应用架构谈 本地持久化方案及动态部署
转载: iOS应用架构谈 本地持久化方案及动态部署 前言 嗯,你们要的大招.跟着这篇文章一起也发布了CTPersistance和CTJSBridge这两个库,希望大家在实际使用的时候如果遇到问题,就给 ...
- bootstrap--input框选择日期
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 重启Apache报错apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting的解决方法
启动apache提示 : apache2: Could not reliably determine the server's fully qualified domain name, using 1 ...
- tr设置背景图片
tr是不能设置背景图片的....
- Qt之QSizePolicy
简述 QSizePolicy类是一个描述布局水平和垂直方向调整策略的属性. 大小策略会影响布局引擎处理部件的方式,部件加入布局以后,会返回一个QSizePolicy,描述了其水平和垂直方向的大小策略. ...
- Eclipse管理Java工程(j2se/j2ee/maven)
Eclipse管理J2SE/J2EE(Maven)项目 eclipse是一个集成开发工具,有编译,运行,打包部署等功能.eclipse可以新建多种项目,不同的项目有不同的IDE层次结构,方便用户管理资 ...
- Linux查看系统信息(操作系统版本,进程,任务,CPU,内存,磁盘等信息)
查看操作系统: cat /proc/version # 内核版本 cat /etc/issue # 发行版本 head -n 1 /etc/issue uname -a lsb_release ...
- IO流--复制picture ,mp3
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import ...
- 探究linux文件
一.Linux的文件: 文件名区分大小写:Linux没有文件拓展名:文件名支持长文件名,含空格,少部分标点符号. - _最好不要用空格 1 GUI图形用户界面:让简单的问题更加简单: CLI命令行界面 ...
- IE10 CSS hack,IE兼容问题
IE10 CSS hack,IE兼容问题 作者: 雪影 发表于2013 年 4 月 25 日 分类:技术分享 | 暂无评论 | 人气: 376 度 首先,ie10不支持条件注释了. 方法一:特性检测: ...