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(四元数)用于计 ...
随机推荐
- sql: T-SQL parent-child function script
--Parent-Child reationship --涂聚文 2014-08-25 --得位置的子節點函數表(包含本身) if exists (select * from dbo.sysobjec ...
- odps编写UDF的实现
问题 尝试写一个UDF,参数支持输入x,y与一个Polygon,返回结果是(x,y)是否在输入的Geometry之内? 环境 eclipse odps 插件 jts包:jts-1.8.jar 解法 i ...
- Java集合排序
[ 1.对普通的包装类基本数据类型的list数组排序(Integer,Long,Double) ] Collections.sort(List list) [例] List<Long> m ...
- Openstack实践(1)部署使用实例及neutron网络
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 如何快速部署使用openstack,使用kolla吧,o ...
- qt 创建资源文件
我们编写的gui可能需要一些额外的资源(比如贴图用的图片),可用资源文件统一管理.以下以图片为例. 用qt creator 打开工程,为工程新建资源文件: 命名为“项目名.prc”,(此处为“cloc ...
- 用C读取INI配置文件
http://blog.csdn.net/chexlong/article/details/6818017 #define CONF_FILE_PATH "Config.ini" ...
- 删除List中指定的元素
删除List中指定的元素 CopyOnWriteArrayList是ArrayList的一个线程安全的变体实现,即可在多线程并发环境中使用 List<Map<String, Object& ...
- python读写不同编码txt文件
以后整理规范 import os import codecs filenames=os.listdir(os.getcwd()) out=file("name.txt",& ...
- 仿照jQuery进行一些简单的框架封装(欢迎指教~)
(function(window,undefined){ var arr = [], push = arr.push, slice = arr.slice; //首先要做的就是封装一个parseHtm ...
- sqlserver根据条件生成插入语句--单表
ALTER proc [dbo].[proc_insert] (@tablename varchar(256),@where varchar(max))asbeginset nocount ondec ...