【发布时间】:2021-07-02 07:27:51
【问题描述】:
我想在我的应用程序中创建一个浮动按钮,它将在整个页面中可见,并且可以处理来自单独 ViewController 的事件以保持按钮状态。
我想在用户登录应用程序的同时从一个单独的窗口打开一个 ViewController。如果用户点击按钮,那么 ViewController 将处理该事件,如果点击按钮外部,则它应该由主控制器处理。
谢谢
【问题讨论】:
我想在我的应用程序中创建一个浮动按钮,它将在整个页面中可见,并且可以处理来自单独 ViewController 的事件以保持按钮状态。
我想在用户登录应用程序的同时从一个单独的窗口打开一个 ViewController。如果用户点击按钮,那么 ViewController 将处理该事件,如果点击按钮外部,则它应该由主控制器处理。
谢谢
【问题讨论】:
首先使用 .xib 文件创建 UIViwe,然后创建所需的 UI。所有与 UI 相关的功能都将存在于 UIView 类中,并创建一个管理所有事件的管理器类。
使用下面的代码将 playerView 添加到窗口中
PlayerManager.shared.addPlayer()
请参阅下面的 playerManager 类代码
class PlayerManager : NSObject{
static let shared = PlayerManager()
private override init(){
super.init()
}
func addPlayer(){
let window = UIApplication.shared.keyWindow
let player = Bundle.main.loadNibNamed("PlayerView", owner: nil, options: nil)![0] as! PlayerView
let outerView = UIView(frame: CGRect(x: getXValueForView(width: 180), y: getYValueForView(height: 120), width: 180, height: 60))
player.frame.size = CGSize(width: 180, height: 60)
player.playerDelegate = self
outerView.clipsToBounds = true
player.miniPlayer.isHidden = false
player.expendedPlayer.isHidden = true
outerView.addSubview(player)
window?.addSubview(outerView)
}
}
【讨论】: