iOS实现Pad上菜单弹出界面

Faith ·
更新时间:2024-09-21
· 655 次阅读

前言:

此种方式实现只适用于pad开发,在iPhone上是无效的。

实现:

比如我在界面上有一个按钮,点击按钮,在按钮旁边弹出一个Pop框。

1、按钮点击事件

btn.addTarget(self, action: #selector(self.popShow), for: .touchUpInside)

2、事件处理

/// 弹框选择条件 /// /// - Parameter sender: <#sender description#> func popShow(sender:UIButton) { let popVC = ExerciseLibPopViewController() popVC.modalPresentationStyle = .popover popVC.preferredContentSize = CGSize(width: 111, height: 2*44.0) popVC.popoverPresentationController?.sourceView = sender popVC.popoverPresentationController?.sourceRect = sender.bounds popVC.popoverPresentationController?.delegate = self self.present(popVC, animated: true, completion: nil) }

其中,popover类有一个代理:

extension xxxViewController : UIPopoverPresentationControllerDelegate { func popoverPresentationControllerShouldDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) -> Bool { print("popoverPresentationControllerShouldDismissPopover") // 处理你要做的 return true } }

类似效果如下:

 

最后小Tips:

1、如果这里需要把上图的小箭头背景色改成其他颜色(和里面颜色一致)

加上这句即可:

popVC.popoverPresentationController?.backgroundColor = UIColor.white

2、如果想改变弹出框位置,修改这句即可:

// 将bounds改成CGRect(x,y,w,h)自己构造参数 popVC.popoverPresentationController?.sourceRect = sender.bounds

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持软件开发网。

您可能感兴趣的文章:iOS10 widget实现3Dtouch 弹出菜单iOS开发中ViewController的页面跳转和弹出模态android底部弹出iOS7风格对话选项框(QQ对话框)--第三方开源之IOS_Dialog_LibraryiOS自定义提示弹出框实现类似UIAlertView的效果高仿IOS的Android弹出框iOS仿简书、淘宝等App的View弹出效果Android仿IOS底部弹出对话框iOS中自定义弹出pickerView效果(DEMO)IOS MenuViewController实现弹出菜单效果



界面 菜单 pad IOS

需要 登录 后方可回复, 如果你还没有账号请 注册新账号