02-Popover代码实现

来源:互联网 发布:颜色分辨软件 编辑:程序博客网 时间:2024/05/16 03:25

Popover代码实现

  • 这一小节我们主要通过代码来实现popover跳转来学习popover更多的一些常用属性

  • 效果预览

这里写图片描述

  • ViewController.swift
import UIKitclass ViewController: UIViewController {    @IBOutlet weak var testButton: UIButton!    override func viewDidLoad() {        super.viewDidLoad()        // Do any additional setup after loading the view, typically from a nib.    }    @IBAction func textButtonClick(sender: AnyObject) {        print("你点击到人家啦~~~")    }    //UIBarButtonItem    @IBAction func popoverButtonClick(sender: AnyObject) {        //1.创建popover的目标控制器        let desVC = UIViewController()        desVC.view.backgroundColor = UIColor.purpleColor()        //2.设置控制器跳转样式        desVC.modalPresentationStyle = UIModalPresentationStyle.Popover        //3.获取目标控制器的popover对象        let popoverVC = desVC.popoverPresentationController        popoverVC?.backgroundColor = UIColor.redColor()        //4.设置箭头方向        popoverVC?.permittedArrowDirections = UIPopoverArrowDirection.Unknown        //4.跳转        //非UIBarBUttonItem        if let btn = sender  as? UIButton        {            //设置来源视图            popoverVC?.sourceView = btn            //设置参考点            popoverVC?.sourceRect = btn.bounds            //忽略外部点击 默认为false  如果设置为true 表示 点击外部popover不会消失 需要手动添加按钮消失  如果为false 表示点击外部视图 popover会消失            desVC.modalInPopover = false            //设置点击穿透视图            popoverVC?.passthroughViews = [testButton]        }        else if let item = sender as? UIBarButtonItem //UIBarBUttonItem        {            //UIBarButtonItem 设置参考点无效  设置来源视图是通过barButtonItem属性            popoverVC?.barButtonItem = item        }        //model跳转        presentViewController(desVC, animated: true) { () -> Void in        }    }    override func didReceiveMemoryWarning() {        super.didReceiveMemoryWarning()        // Dispose of any resources that can be recreated.    }}
  • 总结
  • popover属性

    • permittedArrowDirections:设置箭头方向 系统默认为UnKnown
    • sourceView:来源视图(只针对非UIBarButtonItem)
      • 原因:UIBarButtonItem不是UIView的子类
    • barButtonItem:来源视图(只针对UIBarButtonItem)
    • sourceRect:目标参考点(只针对非UIBarButtonItem,UIBarButtonItem设置无效)
    • passthroughViews:设置穿透视图(可以点击该视图交互事件)
  • UIViewController属性

    • preferredContentSize:设置popover的大小
    • modalInPopover:是否忽略外部点击(默认为false 如果设置为true 表示 点击外部popover不会消失 需要手动添加按钮消失 如果为false 表示点击外部视图 popover会消失)
0 0
原创粉丝点击