iOS开发——UI篇Swift篇&UIScrollView
UIScrollView
//返回按钮事件
@IBAction func backButtonClick()
{
self.navigationController?.popViewControllerAnimated(true)
}
//创建滚动视图
var mainScrollView:UIScrollView!
var view1:UIView!
var view2:UIView!
var view3:UIView!
//创建UIPageControl实例
var pageCtrl:UIPageControl!
override func viewDidLoad() {
super.viewDidLoad()
titleLabel.text = titleString
// Do any additional setup after loading the view.
//创建滚动视图
mainScrollView = UIScrollView(frame: CGRectMake(, , , ))
//设置背景色
mainScrollView.backgroundColor = UIColor.grayColor()
//添加到视图上
self.view.addSubview(mainScrollView)
//创建3个视图,添加到ScrollView上
view1 = UIView(frame: CGRectMake(, , , ))
view1.backgroundColor = UIColor.redColor()
mainScrollView.addSubview(view1)
view2 = UIView(frame: CGRectMake(, , , ))
view2.backgroundColor = UIColor.greenColor()
mainScrollView.addSubview(view2)
view3 = UIView(frame: CGRectMake(, , , ))
view3.backgroundColor = UIColor.blueColor()
mainScrollView.addSubview(view3)
//设置scrollView的容器大小
mainScrollView.contentSize = CGSizeMake(*, )
//设置滚动条风格
mainScrollView.indicatorStyle = UIScrollViewIndicatorStyle.White
//设置水平方向滚动条是否可见
mainScrollView.showsHorizontalScrollIndicator = false
//设置垂直方向滚动条是否可见
mainScrollView.showsVerticalScrollIndicator = false
//设置成翻页滚动
mainScrollView.pagingEnabled = true
mainScrollView.delegate = self
mainScrollView.maximumZoomScale = 2.0;//允许放大2倍
mainScrollView.minimumZoomScale = 0.5;//允许放大到0.5倍
//页面控制器
//创建UIPageControl实例
pageCtrl = UIPageControl(frame: CGRectMake(, , , ))
//添加到视图
self.view.addSubview(pageCtrl)
//设置总页数
pageCtrl.numberOfPages =
//当前显示到第几页面
pageCtrl.currentPage =
//添加事件
pageCtrl.addTarget(self, action: "pageTurn:", forControlEvents: UIControlEvents.ValueChanged)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
//MARK: - UIScrollViewDelegate
func scrollViewDidScroll(scrollView: UIScrollView)
{
//视图滚动中一直触发
}
func scrollViewWillBeginDragging(scrollView: UIScrollView)
{
//刚开始拖动视图时触发一次
}
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)
{
//将要结束拖动触发一次
}
func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool)
{
//拖动结束,触发一次
}
func scrollViewWillBeginDecelerating(scrollView: UIScrollView)
{
//拖动接触后,开始减速
}
func scrollViewDidEndDecelerating(scrollView: UIScrollView)
{
//减速完毕,恢复到静止状态
//获取scrollView视图滚动的x坐标
var offX:CGFloat = scrollView.contentOffset.x
//计算当前是第几屏
var index:Int = (Int)(offX / )
//设置分页指示器currentPage值
pageCtrl.currentPage = index;
}
//缩放功能-返回缩放的视图
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView?
{
//获取当前滚动视图移动的X坐标
var offsetX = scrollView.contentOffset.x
println(offsetX)
//如果没有滚动,返回view1
{
return view1
}
//滚动300,返回view2
{
return view2
}
//滚动600,返回view3
{
return view3
}
return nil
}
func scrollViewDidZoom(scrollView: UIScrollView)
{
//缩放过程中一直调用
}
func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView!)
{
//开始缩放,调用一次
}
func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView!, atScale scale: CGFloat)
{
//缩放结束,调用一次
}
func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView)
{
println("scrollViewDidEndScrollingAnimation")
}
func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool
{
return false
}
func scrollViewDidScrollToTop(scrollView: UIScrollView)
{
println("scrollViewDidScrollToTop")
}
//MARK: -
//分页控制器value改变事件
func pageTurn(sender:AnyObject?)
{
//获取分页控制器
// var newPageCtl = sender as UIPageControl
//2015年5月2后修改
var newPageCtl = sender as! UIPageControl
//获取分页控制器当前页
var index = newPageCtl.currentPage
//设置ScrollView的x移动距离
mainScrollView.contentOffset = CGPointMake((CGFloat)( * index), )
}
iOS开发——UI篇Swift篇&UIScrollView的更多相关文章
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
- iOS开发——新特性Swift篇&Swift 2.0 异常处理
Swift 2.0 异常处理 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主要围绕这个方面进行讨论. 如何建造异常类型? 在 i ...
- iOS开发——UI精选OC篇&UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍
UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道 ...
- iOS开发——网络编程Swift篇&Alamofire详解
Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...
- ios开发——实用技术总结Swift篇&swift常用开发技术总结
swift常用开发技术总结 懒加载:属性,数组(字典),控件... 数组(懒加载): lazy var shops:Array<Dictionary<String, String>& ...
- iOS开发——网络编程Swift篇&(八)SwiftyJSON详解
SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库 ...
- ios开发——实用技术篇Swift篇&地址薄、短信、邮件
//返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...
- iOS开发——图形编程Swift篇&CAShapeLayer实现圆形图片加载动画
CAShapeLayer实现圆形图片加载动画 几个星期之前,Michael Villar在Motion试验中创建一个非常有趣的加载动画. 下面的GIF图片展示这个加载动画,它将一个圆形进度指示器和圆形 ...
- iOS开发零基础--Swift篇 元组
元组的介绍 元组是Swift中特有的,OC中并没有相关类型 它是什么呢? 它是一种数据结构,在数学中应用广泛 类似于数组或者字典 可以用于定义一组数据 组成元组类型的数据可以称为“元素” 元组的定义 ...
- iOS开发零基础--Swift篇 循环
循环的介绍 在开发中经常会需要循环 常见的循环有:for/while/do while. 这里我们只介绍for/while,因为for/while最常见 for循环的写法 最常规写法 // 传统写法 ...
随机推荐
- leetcode:Palindrome Number
Question: Determine whether an integer is a palindrome. Do this without extra space. Some hints: Cou ...
- CUDA ---- 简介
CUDA简介 CUDA是并行计算的平台和类C编程模型,我们能很容易的实现并行算法,就像写C代码一样.只要配备的NVIDIA GPU,就可以在许多设备上运行你的并行程序,无论是台式机.笔记本抑或平板电脑 ...
- 主机找不到vmnet1和vmnet8
今天跑程序时,突然发现虚拟机ping不通主机了,返过来可行,防火墙什么的都设置好了,仍然不行,后来发现,在网络和共享中心已经看不到vmnet1和vmnet8了,更改适配器设置也只有本地连接和宽带连接, ...
- HDU-3401 Trade 单调队列优化DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3401 DP方程容易想出来,f[i][j]表示第i天拥有j个股票的最优解,则: 1.不买不卖,f[i][ ...
- mysql 全文查找fulltext
从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4.如果是英文默认值是比较合理的,但是中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,全文索引功 ...
- 第三百四十一天 how can I 坚持
不好,有点肚子疼,凉肚子了. 今天晚上回来看了个电影<聚焦>,貌似明白了一个道理,任何一份职业,只要认识到了它的价值,那就好好干. 计划又放在脑门后了,上班又闲扯了一天.老季公司招人,让我 ...
- sql中获得时间的参数
(----我错了,以下非php.php用例:FORM_UNIXTIME($time, '%H')取小时数.---) 返回表示指定日期的指定日期部分的整数. 语法 DATEPART ( datepart ...
- “IPSec 共享密钥”丢失。
“IPSec 共享密钥”丢失.请验证您的设置并尝试重新连接. 但是这个vpn原来使用时不需要配置 共享的密钥,而且我也没有这个共享的密钥, 搜了下Mac OSX可以修改配置来绕过它. 在/etc/pp ...
- springMVC使用注解方式进行页面跳转
<!--控制层-->package cn.org.spartacus.spring; import org.springframework.beans.factory.annotation ...
- [LeetCode] Consecutive Numbers 连续的数字 --数据库知识(mysql)
1. 题目名称 Consecutive Numbers 2 .题目地址 https://leetcode.com/problems/consecutive-numbers/ 3. 题目内容 写一个 ...