自学Swift-斯坦福笔记整理(九) -- 滚动视图 闭包 多线程

ScrollView 滚动视图
属性 contentSize 滑动区域 必须设置不然不会有效果
contentOffset 获取当前所在的ScrollView的位置 类型为CGPoint 得到对上和左的X和Y坐标
获取正在显示的真实的矩形区域 可以通过ScrollView的对象.aonverRect(scrollView.bounds,fromView:scrollview)
添加ScrollView 如果没有设置contentSize的话并不会显示
func scrollRectToVisible(CGRect,animated:Bool) 通过代码滑动ScrollView
重点 Zooming 放大缩小
首先要做的就是设置Zoom in的最大值和最小值
scrollView.minimumZoomScale = 0.3
scrollView.maximumZoomScale = 2.0
第二件就是delegate
func viewForZoomingInScrollView(sender:UIScrolView) -> UIView
var zoomScale : CGFloat //缩放比例
func setZoomScale(CGFloat,animated:Bool)
func zoomToRect(CGRect,animated:Bool) 

闭包
[unowned self] in 防止指针重复在类中使用 无主self
weak self 这使得self为一个弱指针
class Foo{
     var action: () -> Void = {}
     func Show(value: Int) {println(“\(value)")}
     func setupMyAction(){
         var x:Int = 0
          action = {
              [unowned self] in
               x += 1
               self.Show(x) 
          } 
     }
     func doMyAction10times(){for i in 1…10 {action()}}
}

Multithreading 多线程
在IOS里有多重队列
Main Queue 主队列是个串行队列,所有的UI活动都必须方法在主队列 
Main Queue绝对不能做任何可能阻塞包含URL的NSData
let queue: dispatch_queue_t =要想做的队列     //队列
dispatch_async(queue){做想做的事情}

The Main queue
let mainQ:dispatch_queue_t = dispatch_get_main_queue     //返回主队列
let mainQ: NSOperationQueue = NSOperationQueue.mainQueue()  //面向对象的方法
dispatch_async(notTheMainQueue){
     dispatch_async(dispatch_get_main_queue()){}
}
QOS_CLASS_USER_INTERACTIVE     //快速并且优先级高
QOS_CLASS_USER_INITIATED          //优先级高,但是需要时间
QOS_CLASS_UTILITY                         //上时间运行
QOS_CLASS_BACKGROUND               //用户从不关心这个
let qos = Int(<上面任意一个>.value)
let queue = dispatch_get_global_queue(qos,0)

readers writers

let qos= Int(QOS_CLASS_USER_INITIATERD.value)          //一个新的线程
dispatch_async(dispatch_get_global_queue(qos,0)){() -> Void in //采用闭包
     dispatch_async(dispatch_get_main_queue()){}          //返回main队列
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值