swift 代码笔记

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 {

           

        }else if buttonIndex==2{

            

        }else{

            return

        }

    }


7  初始化tableview 

    private func 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)

        if self.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

                if self.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值