swift 代码笔记

来源:互联网 发布:淘宝店铺宝贝编辑记录 编辑:程序博客网 时间:2024/06/14 15:24

1/  

// 让导航栏支持右滑返回功能

        self.navigationController?.navigationBar.translucent = false

        self.navigationController?.interactivePopGestureRecognizer.enabled = true

        self.navigationController?.interactivePopGestureRecognizer.delegate = self


2/   导航栏顶部 左右按钮 

 let leftButton:UIButton =UIButton(frame: CGRectMake(0,0, 50, 40))

        leftButton.setImage(UIImage(named:"home_zuohua"), forState: UIControlState.Normal)

        leftButton.addTarget(self, action:"leftButtonAction", forControlEvents: UIControlEvents.TouchUpInside)

       var leftFixedSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target:nil ,action:nil)

        leftFixedSpace.width = -15;

       self.navigationItem.leftBarButtonItems = [leftFixedSpace,UIBarButtonItem(customView: leftButton)]

        

       let rightButton:UIButton =UIButton(frame: CGRectMake(0,0, 50, 40))

        rightButton.setImage(UIImage(named:"home_tianjia"), forState: UIControlState.Normal)

        rightButton.addTarget(self, action:"rightButtonAction", forControlEvents: UIControlEvents.TouchUpInside)

       var rightFixedSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target:nil ,action:nil)

        rightFixedSpace.width = -15;

       self.navigationItem.rightBarButtonItems = [rightFixedSpace,UIBarButtonItem(customView: rightButton)]



3/    按钮旋转功能 

// 旋转功能 self.connectButton.addRotateAnimationWithTime()

/**

*

做一个有View的旋转动画扩展,默认旋转一周时间0.6s

*/

extension UIView {

   func addRotateAnimationWithTime(_ time:NSTimeInterval? =0.6){

       let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z")

        rotationAnimation.toValue =NSNumber(double: M_PI *2.0)

        rotationAnimation.duration = time!

        rotationAnimation.removedOnCompletion =false

        rotationAnimation.repeatCount =HUGE

       self.layer.addAnimation(rotationAnimation, forKey:"rotationAnimation")

    }

}

4/  点击cell 短时间内选中的效果 

func tableView(tableView:UITableView, didSelectRowAtIndexPath indexPath:NSIndexPath) {

        tableView.deselectRowAtIndexPath(indexPath, animated:true)

        //。。。。。。

    }


5/  使用第三方cell 

func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

       let cellId = "TableViewCell"

       var cell = tableView.dequeueReusableCellWithIdentifier(cellId)as! SWTableViewCell!

       if cell == nil {

           var rightButtonArray = NSMutableArray()

            rightButtonArray.addUtilityButtonWithColor(grayColor, icon:UIImage(named: "home_editblue"))

            rightButtonArray.addUtilityButtonWithColor(appThemeColor, icon:UIImage(named: "home_onwhite"))

            cell =SWTableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellId, containingTableView:self.myTableView, leftUtilityButtons:nil, rightUtilityButtons: rightButtonArray as [AnyObject])

            cell.delegate =self

        }

        cell.textLabel!.text ="0822655"

        cell.detailTextLabel!.text ="Some detail text"

        cell.imageView!.image =UIImage(named: "icon_wukong--")

       return cell

    }


6/  ActionSheet 效果   别忘了实现代理方法 也可以自定义cell 

    func rightButtonAction(){

       let actionSheet = UIActionSheet(title:nil, delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle:nil, otherButtonTitles: "New Device","Device Configured")

        actionSheet.showInView(self.view)

    }

 //MARK: - ActionSheetDelegate

   func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int) {

       if buttonIndex==1 {

           

        }elseif buttonIndex==2{

            

        }else{

           return

        }

    }


7  初始化tableview 

    privatefunc buildSubUI(){

        //初始化Tableview

       self.myTableView ={

           let tableView = UITableView(frame:self.view.bounds, style:UITableViewStyle.Plain)

            tableView.autoresizingMask = .FlexibleHeight | .FlexibleWidth;

            tableView.rowHeight =64.0

//            tableView.separatorStyle = UITableViewCellSeparatorStyle.None

            tableView.allowsSelection =false

            tableView.delegate =self

            tableView.dataSource =self

           return tableView

           }()

        self.myTableView.tableFooterView = UIView() //这样可以让多余的cell下划线去掉

       self.view.addSubview(self.myTableView)

        //初始化headerView  COEFFICIENT_OF_HEIGHT_ZOOM 适配的缩放比例系数 

       let headerView = TTAdvertisementView(frame:CGRectMake(0,0, ScreenWidth,180*COEFFICIENT_OF_HEIGHT_ZOOM), pictureArray: ["1","2","3"])

       self.myTableView.tableHeaderView = headerView

    }


8/  tableview的数据模型 

class LeftItem {

   var icon : String =""

   var title : String =""

}

private(set)var cellTitleArray : NSMutableArray = {

        var arr :NSMutableArray = NSMutableArray()

       var item : LeftItem =LeftItem()

        item.icon ="leftmenu_password"

        item.title ="Account Password"

        arr.addObject(item)

       var item2 : LeftItem =LeftItem()

        item2.icon ="leftmenu_faq"

        item2.title ="FAQ"

        arr.addObject(item2)

       return arr

    }()


9/ 首页的广告轮播图 

let headerView = TTAdvertisementView(frame: CGRectMake(0,0, ScreenWidth,180*COEFFICIENT_OF_HEIGHT_ZOOM), pictureArray: ["1","2","3"])

       self.myTableView.tableHeaderView = headerView


import UIKit


class TTAdvertisementView:UIView, UIScrollViewDelegate{


   private(set) var  pictureScrollView:UIScrollView?

   private(set) var  pageContrlolerView:UIPageControl?

   private(set) var  advertisementTime:NSTimer?

   private(set) var  advertisementCurrent:NSInteger =1

   private(set) var  pictureArray:NSArray!

   weak var viewController:UIViewController// 用于做页面跳转


   init(frame: CGRect, pictureArray:NSArray) {

       super.init(frame: frame)

       self.buildDataAndUI(pictureArray)

    }

    

   override func awakeFromNib(){

        super.awakeFromNib()

    }

    

   required init(coder aDecoder:NSCoder) {

        //        fatalError("init(coder:) has not been implemented")

       super.init(coder: aDecoder)

    }

    

    //MARK:- Delegate or DataSource

    //MARK:- UIScrollViewDelegate

   func scrollViewDidEndDecelerating(scrollView: UIScrollView) {

        self.advertisementCurrent =NSInteger(scrollView.contentOffset.x /ScreenWidth)

        ifself.advertisementCurrent ==self.pictureArray.count +1{

           self.pictureScrollView?.contentOffset =CGPointMake(0,0)

            self.advertisementCurrent =1

           self.pageContrlolerView?.currentPage =0

           return

        }

        self.pageContrlolerView?.currentPage =self.advertisementCurrent

    }


    //MARK:- NSNotification Method

    

    //MARK:- Action Method

    

    //MARK:- Private Method

   /**

    *  定时器重复方法

    */

   func advertisementTimer() {

       UIView.animateWithDuration(1, animations: { () ->Void in

            self.pictureScrollView?.contentOffset =CGPointMake(ScreenWidth * (CGFloat(self.advertisementCurrent)),0)

            self.pageContrlolerView?.currentPage =self.advertisementCurrent

            self.advertisementCurrent++

            }) { (finish) ->Void in

                ifself.advertisementCurrent ==self.pictureArray.count +1{

                   self.pictureScrollView?.contentOffset =CGPointMake(0,0)

                   self.advertisementCurrent =1

                   self.pageContrlolerView?.currentPage =0

                }

        }

    }


   /**

    //初始化相关子View

    */

   func buildDataAndUI(urlArray:NSArray) {

       //数据

       self.pictureArray =NSArray(array: urlArray)


        //UIScrollView

       self.pictureScrollView =UIScrollView(frame: CGRectMake(0, 0, ScreenWidth, self.bounds.size.height))

        self.pictureScrollView!.pagingEnabled =true

        self.pictureScrollView!.delegate =self

        self.pictureScrollView!.showsVerticalScrollIndicator = false

        self.pictureScrollView!.showsHorizontalScrollIndicator = false

        self.pictureScrollView!.userInteractionEnabled = true

        self.addSubview(self.pictureScrollView!)

        self.pictureScrollView?.contentSize =CGSizeMake(ScreenWidth *CGFloat(self.pictureArray.count + 1), 0)

        

       for (i, urlString) in enumerate(self.pictureArray) {

           let pictureImageView = UIImageView(frame: CGRectMake(ScreenWidth*CGFloat(i),0, ScreenWidth,self.bounds.size.height))

           if i == 0{

                pictureImageView.image =UIImage(named: "ad_tupian2")

            }

           if i == 1{

                pictureImageView.image =UIImage(named: "ad_tupian")

            }

           if i == 2{

                pictureImageView.image =UIImage(named: "ad_tupian2")

            }

//            pictureImageView.sd_setImageWithURL(NSURL(string: model.pic!), placeholderImage: UIImage(named: "DefaultBgImage"))

//            pictureImageView.contentMode = UIViewContentMode.ScaleAspectFill

//            pictureImageView.userInteractionEnabled = true

           self.pictureScrollView?.addSubview(pictureImageView)

            

            }

        

        //为了循环多添加一张

       let pictureImageView = UIImageView(frame: CGRectMake(CGFloat((self.pictureArray.count)) *ScreenWidth, 0,ScreenWidth, self.bounds.size.height))

        pictureImageView.image =UIImage(named: "ad_tupian2")

//        pictureImageView.sd_setImageWithURL(NSURL(string: model.pic!), placeholderImage: UIImage(named: "DefaultBgImage"))

//        pictureImageView.contentMode = UIViewContentMode.ScaleAspectFill

//        pictureImageView.userInteractionEnabled = true

       self.pictureScrollView?.addSubview(pictureImageView)

        

        //UIPageControl

        self.pageContrlolerView =UIPageControl(frame: CGRectMake(0,self.bounds.size.height -40, self.bounds.size.width,40))

        self.pageContrlolerView!.numberOfPages =self.pictureArray.count

        self.pageContrlolerView!.currentPageIndicatorTintColor = appThemeColor

        self.pageContrlolerView!.currentPage =0

        self.addSubview(self.pageContrlolerView!)

       //定时器

       self.advertisementTime =NSTimer.scheduledTimerWithTimeInterval(3.0, target:self, selector: "advertisementTimer", userInfo:nil, repeats: true)

    }


}
















0 0
原创粉丝点击