Skip to content

floatWin

shixuemei edited this page Mar 15, 2017 · 7 revisions

如何实现多页面切换时的悬浮窗效果

效果图如下:

悬浮窗效果

1. 实现思路

  • 将播放器对象中的view设置为悬浮窗的窗口大小

  • 将播放器对象中view通过addSubView添加到悬浮窗UIView上

2. 示例代码

其中全屏显示的UIViewController对象为_playerVC,悬浮窗显示的UIViewController对象为_floatVC,播放器对象为player

  • 在全屏UIViewController对象_playerVC中, 创建播放器对象player以及悬浮窗_floatVC,关键是需要将_playerVC设置给_floatVC,以便_floatVC得到_player对象
- (void)viewDidLoad {
    [super viewDidLoad];
    
    ......

    _floatVC = [[KSYFloatVC alloc] init];
    _floatVC.playerVC = self;
}

  • 在悬浮窗的UIViewController对象_floatVC中,将播放器对象player的view大小设置为悬浮窗大小,并将player.view添加至悬浮窗的UIView上即可
- (void)viewDidAppear:(BOOL)animated {
    if(_playerVC && _playerVC.player)
    {
        [_playerVC.player.view setFrame: videoView.bounds];
        [videoView addSubview: _playerVC.player.view];
    }
}
Clone this wiki locally