swift - UIScrollView 的使用
本节详细介绍scrollview的用法
————————————————————————————————————
UIScrollView 是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容
UIScrollView 用法,将需要展示的内容添加到scrollview中
设置UIScrollView 的contentView属性,告诉UIScrollView所有内容的尺寸
1、初始化
let scrollView = UIScrollView()
var imageView = UIImageView()
var imageView2 = UIImageView()
var imageView3 = UIImageView()
var imageView4 = UIImageView()
2、创建scrollview,并确定好所需设置的属性
scrollView.delegate = self //设置代理
scrollView.frame = CGRect(x:,y:,width:self.view.frame.size.width,height:)//设置scrollview的大小
scrollView.backgroundColor = UIColor.white//设置背景颜色
scrollView.pagingEnabled = true //是否支持分页
scrollView.bounces = false //是否支持回弹效果
scrollView.showsVerticalScrollIndicator = false //垂直滑动线隐藏
scrollView.showsHorizontalScrollIndicator = false //水平滑动线隐藏
//scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10) //设置内边距
scrollView.contentSize = CGSize(width:self.view.frame.size.width * 3,height:0)
3、实现轮播的效果
1)添加图片
/***添加多张图片到scrollview里面***/
harray = ["2.jpg","3.jpg","4.jpg"]
//所以这里切换成for循环的方式添加图片
for i in ..<harray.count {
let hImageViews = UIImageView(image: UIImage(named:"\(i+2).jpg" ))
hImageViews.frame = CGRect(x:self.view.frame.size.width*CGFloat(i),y:0,width:self.view.frame.size.width,height:300)
scrollView.addSubview(hImageViews)
}
self.view.addSubview(scrollView)//一定不要忘记把scrollview添加到view上
2)实现轮播的效果
所需要注意的是:就是设置好所添加图片的frame,上面的代码写的很详细,大家可以参考!
效果图如下:

4、实现图片缩放的效果
1)创建scrollview,并添加图片
scrollView.delegate = self
scrollView.frame = self.view.bounds
let imageView = UIImageView(image:UIImage(named:"1.jpeg"))
scrollView.contentSize = imageView.bounds.size
scrollView.addSubview(imageView)
self.view.addSubview(scrollView)
scrollView.minimumZoomScale = 0.1
scrollView.maximumZoomScale = 5.0
2)实现一个代理方法,在此方法中指定需要缩放的子控件
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
for subView:AnyObject in scrollview.subviews {
if subView.isKind(of:UIImageView.self) {
return subView as? UIView
}
}
return nil
}
效果图如下:


5、代理方法的作用
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("只要滚动了就会触发哦。")
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
print("开始拖拽视图")
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
print("结束滚动")
}
func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
print("将开始降速时")
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
print("减速停止了时执行,手触摸时执行执行")
}
func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
print("滚动动画停止时执行,代码改变时触发,也就是setContentOffset改变时")
}
func scrollViewDidEndZooming(_ scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) {
print("完成放大缩小时调用")
}
上面的方法都备注了什么时候执行,很清楚,大家可以试试!
最后,上传一张网络上的图片:

swift - UIScrollView 的使用的更多相关文章
- iOS程序-UIScrollView的基本使用
iOS程序-UIScrollView的基本使用 scrollView的几个属性contentSize contentOffset contentInset 1.不能向上滑动很可能是因为contentS ...
- Swift - 用UIScrollView实现视差动画效果
Swift - 用UIScrollView实现视差动画效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // MoreInfoVi ...
- iOS开发——UI篇Swift篇&UIScrollView
UIScrollView //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControlle ...
- Swift - 滚动视图(UIScrollView)的用法
1,当图片尺寸超过屏幕时,使用UIScrollView可以实现滚动条视图,即手指触摸滚动屏幕方便浏览整个页面. 1 2 3 4 5 6 var scrollView=UIScrollView() sc ...
- Swift - 使用UIScrollView实现页面滚动切换
UIScrollView提供了以页面为单位滚动显示各个子页面内容的功能,每次手指滑动后会滚动一屏的内容. 要实现该功能,需要如下操作: 1,将UIScrollView的pagingEnabled属 ...
- swift 实践- 14 -- UIScrollView
import UIKit class ViewController: UIViewController ,UIScrollViewDelegate{ override func viewDidLoad ...
- swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)
比较简单,原理就不说了,这里只做记录: 代码如下: 1,准备 var pageControl:UIPageControl? var myscrollView:UIScrollView? var myT ...
- iOS开发之三个Button实现图片无限轮播(参考手机淘宝,Swift版)
这两天使用Reveal工具查看"手机淘宝"App的UI层次时,发现其图片轮播使用了三个UIButton的复用来实现的图片循环无缝滚动.于是乎就有了今天这篇博客,看到“手机淘宝”这个 ...
- Swift学习之熟悉控件
最近是比较清闲一些的,对于一个开发者来说,这也是一个很好的充电机会.以前做项目都是使用Objective-C去开发,但我们都知道,Swift语言从2014年的出现到现在,一步一步变的完善,渐渐变的受欢 ...
随机推荐
- axel命令 文件下载
axel是Linux下一个不错的HTTP/ftp高速下载工具.支持多线程下载.断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件.适合网速不给力时多线程下载提高下载速度.比如在国内VP ...
- ios最新调用手机相册选取头像(UIActionSheet过期)
由于 UIActionSheet过期所以可以使用如下调用手机相册 前提不要忘记添加代理如下两个 UIImagePickerControllerDelegate,UINavigationControll ...
- phalcon的url大小写的问题
一开始我以为url的大小写是不区分的,实际上调试时是可以发现获取到的url是大小写是和请求时一致, 所谓的没区分,只是服务器或者相应的代码做的处理. 在phalcon里如果路由是api/test,则会 ...
- jacky自问自答-java并发编程
1.java Web中线程不是由tomcat这类web容器负责的吗?为什么还要我控制多线程? 答:这个问题很多初学者都会有的疑惑,举一个我以前做的一个需求,java作为中间平台,是socket服务端, ...
- C语言 · 陶陶摘苹果
算法提高 陶陶摘苹果 时间限制:1.0s 内存限制:256.0MB 问题描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出n个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个3 ...
- 记录github 免登陆用户名密码方式
1.https 代码模式切换为ssh模式: (本博客有文章介绍) 2.~/.ssh/github_rsa.pub 内容添加到github “config“ 目录下面 3.配置~/.ssh/config ...
- FFmpeg API变化
可以查看doc目录下的APIchanges和根目录下的Changelog 去掉了ffserver程序 'avcodec_register_all' is deprecated 还有av_regis ...
- 【R】提升R代码运算效率的11个实用方法
低.有许多种方法可以提升你的代码运算效率,但或许你更想了解运算效率能得到多大的提升.本文将介绍几种适用于大数据领域的方法,包括简单的逻辑调整设计.并行处理和Rcpp的运用,利用这些方法你可以轻松地处理 ...
- 《FPGA全程进阶---实战演练》第二章之PCB layout注意事项以及投板几点说明
上一篇博客讲述了各个部分的原理图,那么根据原理图画出PCB,其实PCB是一门很大的学问,想要掌握谈何容易.就笔者在画PCB时的一些注意事项做一些说明. 1.电源部分的电源线 ...
- imx6 hdmi接口支持
/************************************************************* * imx6 hdmi接口支持 * 新的板子需要使用到hdmi,今天就测试 ...