swift简单学习之轮播器

初学swift 语法之类的还有点蒙,简单的写了一个轮播器的封装,没有精加工 不喜勿喷!!!

import UIKit
class ScrollViewLoop: UIView,UIScrollViewDelegate {
    var ImgUrl = NSMutableArray()
    private var count = 0
    var delegate : circleViewDelegate?
    private var imgv : UIImageView?
    private var scrollView : UIScrollView?
    private var pageControl : UIPageControl?
    private var timer : NSTimer?
    func buildUI(ImgUrls:NSMutableArray){
        ImgUrl .addObjectsFromArray(ImgUrls as [AnyObject])
         scrollView = UIScrollView(frame: self.frame)
        scrollView!.delegate = self
        self.addSubview(scrollView!)
        scrollView!
            .contentSize = CGSizeMake(CGFloat(Float(self.frame.width) * Float(ImgUrls.count)), self.frame.height)
         scrollView!.pagingEnabled = true
         scrollView!.showsHorizontalScrollIndicator = true
         scrollView!.bounces = true
         let crect = CGRectMake(self.frame.width/2 - CGFloat(30 * ImgUrls.count)/2, self.frame.size.height - 40, CGFloat(30 * ImgUrls.count), 20)
          pageControl = UIPageControl(frame:crect)
          self.addSubview(pageControl!)
         pageControl!.currentPage = 0
        pageControl!.numberOfPages = ImgUrls.count
        pageControl!.currentPageIndicatorTintColor = UIColor.redColor()
        pageControl!.pageIndicatorTintColor = UIColor(red: 1, green: 1, blue: 0.5, alpha: 0.8)
        pageControl!.userInteractionEnabled = false
         for index in 1...(ImgUrls.count){
            imgv = UIImageView()
         imgv!.frame = CGRectMake(CGFloat(Float(index-1) * Float(self.frame.width)) , 0, self.frame.width, self.frame.height)
            scrollView!.addSubview(imgv!)
            imgv!.image = ImgUrls.objectAtIndex(index - 1) as? UIImage
              imgv!.tag = index
             let tap:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("imageGestureTap:"))
             tap.numberOfTapsRequired = 1
            tap.numberOfTouchesRequired = 1
            imgv!.userInteractionEnabled = true
            imgv!.addGestureRecognizer(tap)
         }
        self.timer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: "timerAction", userInfo: nil, repeats: true)
        NSRunLoop().addTimer(self.timer!, forMode: NSDefaultRunLoopMode)
     }
     func imageGestureTap(tap:UITapGestureRecognizer){
     
         if delegate != nil{
             delegate?.clickCurrentImg((tap.view?.tag)!)
        }
     }
    //定时器
     func timerAction(){
         if count >= ImgUrl.count{
        count = 0
         }
        pageControl?.currentPage = count
         scrollView?.setContentOffset(CGPointMake(CGFloat(Float(self.frame.size.width) * Float(count)), 0), animated: true)
         count++
     }
      func scrollViewDidScroll(scrollView: UIScrollView) {
         print(scrollView.contentOffset.x)
         if count >= ImgUrl.count{
             count = 0
        }
            pageControl?.currentPage = Int(scrollView.contentOffset.x/self.frame.size.width)
          count++
      }
     override func drawRect(rect: CGRect) {
         super.drawRect(rect)
     }
}
//协议 点击照片的代理
 protocol circleViewDelegate {
     func clickCurrentImg(index:Int)
 }


一直搞不懂swift中成员变量和属性的区别 没有OC中直观

swift是语法严谨的一个编程语言  其中?!的应用更是惟妙惟肖!


变量:

private var _firstName:String=String(); //定义变量并初始化
private var _lastName:String?   //定义变量默认初始化
private var _sex:Bool=true;
private var _age:Int?;

属性:

var firstName:String{
get{return _firstName}
set{_firstName=newValue}  // 默认setter 的传人参数名称是 newVlaue
}
var lastName:String{
get {return _lastName}
set(newLastName){_lastName=newLastName} // 可以定义setter 传入参数的名称 例如:newLastName
}

我感觉看着别扭是因为 在OC中 @property 是默认生成getter  setter方法的 

但是在swift中 却需要手动的去写setter getter方法!!!!













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值