• swift UIToolbar


    //

    //  ToolBarViewController.swift

    //  UIControlDemo

    //

    //  Created by  on 14/12/3.

    //  Copyright (c) 2014 马大哈. All rights reserved.

    //

     

    import UIKit

    class ToolBarViewController: BaseViewController ,UIAlertViewDelegate ,UIActionSheetDelegate{

        var toolBar: UIToolbar?

        var popOver: UIPopoverController?

        

        override func viewDidLoad() {

            super.viewDidLoad()

            // Do any additional setup after loading the view, typically from a nib.

         

            let alert1BarButton = UIBarButtonItem(title: "提示8.0之前", style: UIBarButtonItemStyle.Plain, target: self, action: "alert1Method")

            let flexLeftBarButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil)

            

            let alert2BarButton = UIBarButtonItem(title: "提示8.0之后", style: UIBarButtonItemStyle.Plain, target: self, action: "alert2Method")

            let flexMiddleBarButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil)

            

            let shareBarButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Action, target: self, action: "ShareMethod:")

            let flexRightBarButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil)

            

            let actionBarButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Compose, target: self, action: "ActionSheetMethod")

            let itemArray = [alert1BarButton,flexLeftBarButton,alert2BarButton,flexMiddleBarButton,shareBarButton,flexRightBarButton,actionBarButton]

            

            toolBar = UIToolbar(frame: CGRectMake(0, self.view.frame.size.height-40, self.view.frame.size.width,40))

            toolBar?.items = itemArray

            self.view.addSubview(toolBar!)

            

        }

        

        

        //  提示1方法

        func alert1Method(){

            /*

            version < 8.0,可以使用提示

            并且执行Delegate (要写UIAlertViewDelegate)

            然后写出协议方法 func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {}

            */

            var alertView = UIAlertView(title: "title", message: "message", delegate: self, cancelButtonTitle: "返回", otherButtonTitles: "确定","跳过")

            alertView.show()

     

        }

        

        func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {

            println("(buttonIndex)   cancle=0,其他依次索引")

        }

            

        // 提示2方法

        func alert2Method(){

            /*

            version >= 8.0.0 使用此提示

            直接在action操作后追加执行方法即可

            */

            var touchAlertController = UIAlertController(title: "点击提示", message: "alert提示", preferredStyle: UIAlertControllerStyle.Alert)

            touchAlertController.addAction(UIAlertAction(title: "确认", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction!) in

                println("确认,在这里直接写执行的方法即可")

            }))

            

            touchAlertController.addAction(UIAlertAction(title: "返回", style: UIAlertActionStyle.Cancel, handler: { (action: UIAlertAction!) in

                println("返回")

            }))

            self.presentViewController(touchAlertController, animated: true, completion: nil)     

        }

     

        // 分享方法 此时参数类型AnyObject相当于OC中的id(不明确具体传过来的参数是什么控件,目的在于判断是否butttonbarbuttonitem

        func ShareMethod(control:AnyObject){

            

            // 定义一个任意类型的数组(存放string image等)

            var shareContent = [AnyObject]()

            shareContent.append("控件类别App测试")

            shareContent.append(UIImage(named: "test_DiamondInlay_goods_0.jpg")!)//这个图片资源必须存在,否则会crash

         

           let activityViewController = UIActivityViewController(activityItems: shareContent, applicationActivities: nil)

            if UIDevice.currentDevice().userInterfaceIdiom == .Phone {

                presentViewController(activityViewController, animated: true, completion: nil)

            } else if UIDevice.currentDevice().userInterfaceIdiom == .Pad {

                if (popOver?.popoverVisible != nil){               

                    popOver?.dismissPopoverAnimated(true)

                }else{

                    popOver  = UIPopoverController(contentViewController: activityViewController)

                    if control is UIBarButtonItem {

                        popOver?.presentPopoverFromBarButtonItem(control as UIBarButtonItem, permittedArrowDirections: .Any, animated: true)

                    } else {

                        var button = control as UIButton

                        popOver?.presentPopoverFromRect(button.frame, inView: self.view, permittedArrowDirections:.Any, animated:true)

                    }

                }

            }

        }

        

        func ActionSheetMethod(){

            if UIDevice.currentDevice().userInterfaceIdiom == .Phone {

                //destructiveButtonTitle  显示红色字体,实际使用中可以不写这个

                var actSheet = UIActionSheet(title: "title", delegate: self, cancelButtonTitle: "返回", destructiveButtonTitle: nil, otherButtonTitles: "跳过1","跳过2","跳过3")

                actSheet.showInView(self.view)

            }

        }

        

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

            println("(buttonIndex)   cancle=0,其他依次索引")

        }

            override func didReceiveMemoryWarning() {

            super.didReceiveMemoryWarning()

            // Dispose of any resources that can be recreated.

        }

    }

     

  • 相关阅读:
    在github上用octopress搭建博客过程纪要
    各自用一句话来概括MVC、MVP、MVVM的差异特点
    二级域名使用下划线
    knockout.js的学习笔记2
    knockout.js的学习笔记
    knockout.js的学习笔记4
    利用GitHub Pages安装部署Octopress博客
    安装.net framework 4.0失败,出现HRESULT 0xc8000222错误代码
    版本控制工具GitHub发布Windows版
    C#多线程中 lock用法
  • 原文地址:https://www.cnblogs.com/madaha/p/4145995.html
Copyright © 2020-2023  润新知