本文主要是介绍02-Popover代码实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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.popoverPresentationControllerpopoverVC?.backgroundColor = UIColor.redColor()//4.设置箭头方向popoverVC?.permittedArrowDirections = UIPopoverArrowDirection.Unknown//4.跳转//非UIBarBUttonItemif 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会消失)
这篇关于02-Popover代码实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!