如何使用swift在AVRoutePickerView上触发click事件

daupos2t  于 2024-01-05  发布在  Swift
关注(0)|答案(3)|浏览(240)

使用AVRoutePickerView,我能够做的Airplay编程后点击Airplay图标.现在我想,在viewDidLoad它应该初始化AVRoutePickerView,甚至点击Airplay图标(不需要手动点击图标).
下面是我的一小段代码,用于在UIView上显示Airplay图标
let routePV = AVRoutePickerView(frame:CGRect(x:30.0,y:150.0,width:30.0,height:30.0))routePV = UIColor.clear
self.view.addSubview(routePV)
我真的不知道如何触发点击viewdidload?
谢谢

wgxvkvu9

wgxvkvu91#

这是可能的。但是我必须警告,在没有用户交互的情况下呈现这个界面可能是非常意外的行为。我建议只在用户打算呈现这个界面的直接结果中这样做。
确保您已将其添加到视图层次结构中。

  1. let routePickerView = AVRoutePickerView()
  2. view.addSubview(routePickerView)

字符串
如果你愿意,你可以隐藏它。

  1. routePickerView.isHidden = true


然后,要显示路由选择器界面,请在其UIButton上触发touchUpInside

  1. if let routePickerButton = routePickerView.subviews.first(where: { $0 is UIButton }) as? UIButton {
  2. routePickerButton.sendActions(for: .touchUpInside)
  3. }


请注意,这可能会在未来的iOS版本中停止工作。

展开查看全部
siotufzp

siotufzp2#

我更喜欢使用扩展名:

  1. fileprivate extension AVRoutePickerView {
  2. func present() {
  3. let routePickerButton = subviews.first(where: { $0 is UIButton }) as? UIButton
  4. routePickerButton?.sendActions(for: .touchUpInside)
  5. }
  6. }

字符串
示例实现:

  1. class RandomViewController: UIViewController {
  2. ...
  3. private lazy var routePickerView = {
  4. let routePickerView = AVRoutePickerView(frame: .zero)
  5. routePickerView.isHidden = true
  6. view.addSubview(routePickerView)
  7. return routePickerView
  8. }
  9. ...
  10. @IBAction func presentPickerView(_ sender: UIButton) {
  11. routePickerView.present()
  12. }
  13. }

展开查看全部
ssgvzors

ssgvzors3#

上面的代码片段对我很有效。但是routePickerView.present()给出了错误。如果你得到了一个错误,用routePickerView().present()替换它
谢谢.

相关问题