Swift_ScrollView _ API详解


GitHub

class ViewController: UIViewController,UIScrollViewDelegate {

    var scrollView = UIScrollView()
var imageView = UIImageView()
var image = UIImage() override func viewDidLoad() {
super.viewDidLoad() self.image = UIImage.init(named: "test")!
self.imageView.image = self.image self.view.backgroundColor = UIColor.green
self.view.addSubview(self.scrollView)// 将ScrollView添加到视图上 let width = self.view.bounds.size.width * 2
let height = self.view.bounds.size.height * 2 self.scrollView.frame = self.view.bounds // 设置scrollView的 frame
self.scrollView.contentSize = CGSize(width:width, height:height) //设置scrollView的 contentSize
self.scrollView.delegate = self // 设置scrollView的 代理 print(self.scrollView.contentOffset) // scrollView左顶点的位置 可设置
print(self.scrollView.contentInset) // scrollView 添加额外的滚动附近区域的内容 可设置
self.scrollView.isDirectionalLockEnabled = true
print(self.scrollView.isDirectionalLockEnabled) // 锁定垂直或水平滚动 可设置
print(self.scrollView.bounces) // scrollView 回弹效果 可设置
print(self.scrollView.alwaysBounceVertical) // 垂直回弹 可设置
print(self.scrollView.alwaysBounceHorizontal) // 水平回弹 可设置
print(self.scrollView.isPagingEnabled) // 分页 可设置
print(self.scrollView.isScrollEnabled) // 滚动 可设置
print(self.scrollView.showsHorizontalScrollIndicator) // 显示水平滚动条
print(self.scrollView.showsVerticalScrollIndicator) // 显示垂直滚动条
print(self.scrollView.scrollIndicatorInsets) // 调整指标insets的内部
print(self.scrollView.indicatorStyle) // black with white border. good against any background
print(self.scrollView.decelerationRate) // 减速速度 //open func setContentOffset(_ contentOffset: CGPoint, animated: Bool) 设置 contentOffset
//open func scrollRectToVisible(_ rect: CGRect, animated: Bool) 这个方法需要传入一个Rect 这个rect可以理解成在scrollview.contentView中frame 调用这个方法就会滚到rect所在的那个区域去
//open func flashScrollIndicators() 短暂地显示滚动指示器 你应该在把滚动视图放在最前端时调用此方法。 /* open var isTracking: Bool { get } // returns YES if user has touched. may not yet have started dragging open var isDragging: Bool { get } // returns YES if user has started scrolling. this may require some time and or distance to move to initiate dragging open var isDecelerating: Bool { get } // returns YES if user isn't dragging (touch up) but scroll view is still moving open var delaysContentTouches: Bool // default is YES. if NO, we immediately call -touchesShouldBegin:withEvent:inContentView:. this has no effect on presses open var canCancelContentTouches: Bool // default is YES. if NO, then once we start tracking, we don't try to drag if the touch moves. this has no effect on presses
*/ //父视图是否可以将消息传递给子视图 yes是将事件传递给子视图 则不滚动 no是不传递则继续滚动
//open func touchesShouldBegin(_ touches: Set<UITouch>, with event: UIEvent?, in view: UIView) -> Bool //父视图是否可以将消息传递给子视图 yes是将事件传递给子视图 则不滚动 no是不传递则继续滚动
//open func touchesShouldCancel(in view: UIView) -> Bool print(self.scrollView.minimumZoomScale) // 最小的变焦比例 可设置
print(self.scrollView.maximumZoomScale) // 最大的变焦比例 可设置
print(self.scrollView.zoomScale) // 当前的变焦比例 //open func setZoomScale(_ scale: CGFloat, animated: Bool) 设置变焦比例
//open func zoom(to rect: CGRect, animated: Bool) print(self.scrollView.bouncesZoom)
print(self.scrollView.isZooming)
print(self.scrollView.isZoomBouncing)
print(self.scrollView.scrollsToTop) //当用户点击状态栏时 是否滚动到顶部 //panGestureRecognizer 拖动手势
//pinchGestureRecognizer 变焦手势 //keyboardDismissMode 键盘消失形式
//refreshControl self.imageView.frame = CGRect(origin:CGPoint(x:0, y:0),size:CGSize(width:width, height:height))
self.scrollView.addSubview(self.imageView) } override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
} /// MARK: UIScrollViewDelegate 代理
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("scrollViewDidScroll:scrollView 在滚动")
}
func scrollViewDidZoom(_ scrollView: UIScrollView) {
print("scrollViewDidZoom:scrollView 在改变变焦比例")
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
print("scrollViewWillBeginDragging:scrollView 即将被拖拽")
}
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
print("scrollViewWillEndDragging:scrollView 即将结束拖拽")
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
print("scrollViewDidEndDragging:scrollView 已经结束拖拽")
}
func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
print("scrollViewWillBeginDecelerating:scrollView 即将开始减速")
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
print("scrollViewDidEndDecelerating:scrollView 已经开始减速")
}
func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
print("scrollViewDidEndScrollingAnimation:scrollView 已经结束动画")
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
print("viewForZooming:scrollView 返回视图(viewForZooming)")
return nil
}
func scrollViewWillBeginZooming(_ scrollView: UIScrollView, with view: UIView?) {
print("scrollViewWillBeginZooming:scrollView 即将开始变焦")
}
func scrollViewDidEndZooming(_ scrollView: UIScrollView, with view: UIView?, atScale scale: CGFloat) {
print("scrollViewDidEndZooming:scrollView 已经结束变焦")
}
func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool {
print("scrollViewShouldScrollToTop:scrollView 即将回滚到顶部")
return true
}
func scrollViewDidScrollToTop(_ scrollView: UIScrollView) {
print("scrollViewShouldScrollToTop:scrollView 已经回滚到顶部")
}
}

Swift_ScrollView _ API详解的更多相关文章

  1. 大数据学习笔记——Spark工作机制以及API详解

    Spark工作机制以及API详解 本篇文章将会承接上篇关于如何部署Spark分布式集群的博客,会先对RDD编程中常见的API进行一个整理,接着再结合源代码以及注释详细地解读spark的作业提交流程,调 ...

  2. Java 8 Stream API详解--转

    原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ...

  3. jqGrid APi 详解

    jqGrid APi 详解 jqGrid皮肤 从3.5版本开始,jqGrid完全支持jquery UI的theme.我们可以从http://jqueryui.com/themeroller/下载我们所 ...

  4. hibernate学习(2)——api详解对象

    1   Configuration 配置对象 /详解Configuration对象 public class Configuration_test { @Test //Configuration 用户 ...

  5. 网络编程socket基本API详解(转)

    网络编程socket基本API详解   socket socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket ...

  6. 转】Mahout推荐算法API详解

    原博文出自于: http://blog.fens.me/mahout-recommendation-api/ 感谢! Posted: Oct 21, 2013 Tags: itemCFknnMahou ...

  7. dom4j api 详解--XPath 节点详解

    dom4j api 详解 http://871421448.iteye.com/blog/1546955 XPath 节点 http://www.w3school.com.cn/xpath/xpath ...

  8. 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

    原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ...

  9. 【Unity编程】Unity中关于四元数的API详解

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ...

随机推荐

  1. Java接口与多态

    接口 可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成 接口的定义格式 接口的数据成员,只允许被public, static, final修饰. 接口的方 ...

  2. 在Visualsvn Server上创建svn账号和密码

    VisualSVN Server是一个集成的svn服务端工具,是一款svn服务端不可多得的好工具.可以先安装好VisualSVN Server后,运行VisualSVN Server Manger,然 ...

  3. 未在本机注册Microsoft.ACE.OleDb.12.0

    服务器版本:Windows Server 2008 R2 64位.IIS7 已经安装了Microsoft Access database engine 2010 X64. 在服务器上可以用SQL Se ...

  4. Linux->Jdk1.8安装

    一.下载jdk 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.解 ...

  5. Infragist ics Ult imate 2015 Vol.1 - Product Keys

    Ultimate ProductKeys 2015 Vol.1: 9122-1900164-4504144 9122-9300855-3994197 9122-7600717-4579130 9122 ...

  6. ldconfig: /usr/lib/libpython2.6.so.1.0-gdb.py is not an ELF file - it has the wrong magic bytes at the start.

    https://bugzilla.redhat.com/show_bug.cgi?id=562980

  7. Carbon中文使用手册

    Introduction Carbon 继承了PHP的 Datetime 类和JsonSerialiable.所以 Carbon 中没有涉及到的,但在 Datetime 和JsonSerializab ...

  8. linux 用户切换 标签: linux 2016-07-30 13:57 144人阅读 评论(0) 收藏

    一.指令修改 1.普通用户切换到root用户: su root 需要输入密码 2.root用户切换到普通用户: su 用户名 不需要输入密码 二.直接注销,再用新用户登录 注:1.两种方式存在差别,用 ...

  9. MyEclipse中关于JRE System Library、Web App Libraries的疑惑

    简要说明一下:其实,这三个都是jar包的存放集合. 1.JRE System Library主要存放J2SE的标准jar,一般不需要调整. 2.Referenced Libraries是存放第三方的j ...

  10. easyui学习笔记12—tab标签页的添加和删除

    这一篇我们来看看标签页的添加和删除动作.我在想看这些例子还不如看文档,文档的内容更加全面,但是文档全部是理论没有实际的操作,看起来很枯燥,文档只能是遇到问题的时候查.easyui的文档写的还是很详细的 ...