Swift_ScrollView _ API详解
Swift_ScrollView _ API详解
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详解的更多相关文章
- 大数据学习笔记——Spark工作机制以及API详解
		Spark工作机制以及API详解 本篇文章将会承接上篇关于如何部署Spark分布式集群的博客,会先对RDD编程中常见的API进行一个整理,接着再结合源代码以及注释详细地解读spark的作业提交流程,调 ... 
- Java 8 Stream API详解--转
		原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ... 
- jqGrid APi 详解
		jqGrid APi 详解 jqGrid皮肤 从3.5版本开始,jqGrid完全支持jquery UI的theme.我们可以从http://jqueryui.com/themeroller/下载我们所 ... 
- hibernate学习(2)——api详解对象
		1 Configuration 配置对象 /详解Configuration对象 public class Configuration_test { @Test //Configuration 用户 ... 
- 网络编程socket基本API详解(转)
		网络编程socket基本API详解 socket socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket ... 
- 转】Mahout推荐算法API详解
		原博文出自于: http://blog.fens.me/mahout-recommendation-api/ 感谢! Posted: Oct 21, 2013 Tags: itemCFknnMahou ... 
- dom4j api 详解--XPath 节点详解
		dom4j api 详解 http://871421448.iteye.com/blog/1546955 XPath 节点 http://www.w3school.com.cn/xpath/xpath ... 
- 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:
		原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ... 
- 【Unity编程】Unity中关于四元数的API详解
		本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ... 
随机推荐
- cf1043C. Smallest Word(贪心)
			题意 题目链接 Sol 这题打cf的时候真的是脑残,自己造了个abcdad的数据开心的玩了半天一脸懵逼...最后还好ycr大佬给了个思路不然就凉透了... 首先不难看出我们最后一定可以把字符串弄成\( ... 
- js实现数组内数据的上移和下移
			var swapItems = function(arr, index1, index2){ arr[index1] = arr.splice(index2,1,arr[index1])[0] ret ... 
- JavaScript练习笔记整理·1 - 6.23
			练习平台Codewars地址:https://www.codewars.com/ 欢迎和大家一起来讨论~╭( ・ㅂ・)و ̑̑ 基础练习(1): 我的解答为: class SmallestIn ... 
- EasyUI combobox 加载JSON数据
			Action返回 JSON 格式如下: jsonResult = { total=7,rows=[ {TEXT=技术支持, ID=402894ca4419acf1014419b148a10000}, ... 
- 统计Redis中各种数据的大小
			如果 MySQL 数据库比较大的话,很容易就能查出是哪些表占用的空间: 不过如果 Redis 内存比较大的话, […] 
- c 读取整个文件内容
			char* textFileRead(char* filename){char* text;FILE *pf = fopen(filename,"r");fseek(pf,0,SE ... 
- 关于WEB-INF目录下无法访问webapp下的css等静态文件
			第一种方法: <!-- 输出为项目根目录,即webapp--> <c:set value="${pageContext.request.contextPath}" ... 
- AppDomain配置和卸载
			AppDomain 1.配置AppDomain 使用AppDomainSetup类为新应用程序域提供带有配置信息的公共语言运行时.创建自己的应用程序域时,最重要的ApplicationBase(它是定 ... 
- SpringBoot页面访问处理
			SpringBoot页面访问处理 1.介绍 Springboot推荐使用thymeleaf模板引擎搭载html页面实现jsp动态渲染效果,因此这里才会用该种方案进行. 2.集成步骤 引入thymele ... 
- RequireJS进阶-模块的优化及配置的详解
			概述 关于RequireJS已经有很多文章介绍过了.这个工具可以将你的JavaScript代码轻易的分割成苦干个模块(module)并且保持你的代码模块化与易维护性.这样,你将获得一些具有互相依赖关系 ... 
