本节详细介绍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 的使用的更多相关文章

  1. iOS程序-UIScrollView的基本使用

    iOS程序-UIScrollView的基本使用 scrollView的几个属性contentSize contentOffset contentInset 1.不能向上滑动很可能是因为contentS ...

  2. Swift - 用UIScrollView实现视差动画效果

    Swift - 用UIScrollView实现视差动画效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // MoreInfoVi ...

  3. iOS开发——UI篇Swift篇&UIScrollView

    UIScrollView //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControlle ...

  4. Swift - 滚动视图(UIScrollView)的用法

    1,当图片尺寸超过屏幕时,使用UIScrollView可以实现滚动条视图,即手指触摸滚动屏幕方便浏览整个页面. 1 2 3 4 5 6 var scrollView=UIScrollView() sc ...

  5. Swift - 使用UIScrollView实现页面滚动切换

    UIScrollView提供了以页面为单位滚动显示各个子页面内容的功能,每次手指滑动后会滚动一屏的内容.   要实现该功能,需要如下操作: 1,将UIScrollView的pagingEnabled属 ...

  6. swift 实践- 14 -- UIScrollView

    import UIKit class ViewController: UIViewController ,UIScrollViewDelegate{ override func viewDidLoad ...

  7. swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)

    比较简单,原理就不说了,这里只做记录: 代码如下: 1,准备 var pageControl:UIPageControl? var myscrollView:UIScrollView? var myT ...

  8. iOS开发之三个Button实现图片无限轮播(参考手机淘宝,Swift版)

    这两天使用Reveal工具查看"手机淘宝"App的UI层次时,发现其图片轮播使用了三个UIButton的复用来实现的图片循环无缝滚动.于是乎就有了今天这篇博客,看到“手机淘宝”这个 ...

  9. Swift学习之熟悉控件

    最近是比较清闲一些的,对于一个开发者来说,这也是一个很好的充电机会.以前做项目都是使用Objective-C去开发,但我们都知道,Swift语言从2014年的出现到现在,一步一步变的完善,渐渐变的受欢 ...

随机推荐

  1. ios开发之修改 UITableview 滚动条颜色的方法

    UITableview 的滚动条默认颜色是黑色的,如果 UItableview 背景也是深颜色,则滚动条会变的很不明显.您可以用下面这行代码来改变滚动条的颜色 self.tableView.indic ...

  2. Java中常见的异常__

    作为一名游戏开发者,程序员,很自然必须熟悉对程序的调试方法.而要调试程序,自然需要对程序中的常见的异常有一定的了解,这些日子很多朋友都提出了很多问题,都是关于游戏中的报错,因此在这里我将一些常见的程序 ...

  3. timeout的作用

    废话: 刚才刚才看视屏有一点没看懂,timeout的作用. 得出的结果: setTimeout(‘test()’,1000); 第一个参数要调用的函数名,第二个参数是延时的时间.时间到达以后调用tes ...

  4. SparkSQL ThriftServer服务的使用和程序中JDBC的连接

    SparkSQL ThriftServer服务的使用和程序中JDBC的连接 此时要注意版本问题,我第一次用的是hive2.1.1的,因为要用sparksql的hive服务,但是sparksql默认的是 ...

  5. 【Unity/Kinect】Kinect入门——项目搭建

    本文是Unity Store里的官方Demo包中的ReadMe翻译(别人翻的),介绍了用Unity如何入门搭建起一个Kinect项目工程. 非常感谢下面这位大大的无私奉献! http://www.ma ...

  6. 【C#/WPF】UI控件的拖拽/拉伸

    需求①:控件拖拽——按住鼠标,可自由拖拽控件. 方法:目前看到的办法有两种. 使用ZoomableCanvas:http://www.cnblogs.com/gnielee/archive/2011/ ...

  7. 解析:SO_REUSEADDR bind: address in use

    http://blog.sina.com.cn/s/blog_53a2ecbf010095db.html socket中的SO_REUSEADDR Q: 我正在写一个unix server程序,不是d ...

  8. Liunx下NFS服务器的搭建与配置

    一.NFS简介 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NF ...

  9. ubuntu 12.10 默认安装php5-fpm无监听9000端口,nginx无法链接php5-fpm修正

    升级php5的时候,发现nginx无法链接到php5,怀疑是php5端口的问题. netstat -an未发现监听9000端口. 查看/var/log/php5-fpm.log一切正常. 随后查看/e ...

  10. MySQL5.7远程连接和增加密码

    主要是5.7的很多操作和以前版本不一样,所以踩了很多坑. 1. 远程连接cant connect to mysql (10061) 一开始以为是权限问题,所以参考了详解 MySQL 5.7 新的权限与 ...