iPhone X设备youtube-ios-player-helper SDK横屏布局裁剪问题求助
解决youtube-ios-player-helper在iPhone X横屏的裁剪问题
Hey Rajat, 我之前在项目里用这个SDK时也踩过同样的坑,iPhone X横屏时播放器右侧和底部被裁剪,大概率是安全区域适配没做好,给你几个实测有效的解决方法:
优先适配安全区域约束:
iPhone X及以后的机型有刘海和底部指示器,横屏模式下屏幕边缘存在安全区。如果用Auto Layout布局,别把播放器的约束直接绑到父视图的边缘,要绑定到父视图的safeAreaLayoutGuide上。比如设置leading、trailing、top、bottom约束时,选择"Safe Area"而不是"Superview"。代码手动调整Frame(非Auto Layout场景):
如果是用代码设置播放器的frame,在横屏回调或者布局更新方法里,根据当前视图的安全区内边距调整尺寸:override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() let safeInsets = view.safeAreaInsets // 重新计算播放器的可用区域,避开安全区 let availableFrame = CGRect( x: safeInsets.left, y: safeInsets.top, width: view.bounds.width - safeInsets.left - safeInsets.right, height: view.bounds.height - safeInsets.top - safeInsets.bottom ) playerView.frame = availableFrame }检查并更新SDK版本:
旧版本的youtube-ios-player-helper可能没有适配iPhone X系列的布局逻辑,更新到最新版后很多适配问题会自动解决。禁用播放器的自动调整尺寸:
有些情况下SDK内部的自动调整逻辑会和我们的布局冲突,可以尝试设置playerView.autoresizingMask = [],然后完全由我们自己控制布局。
内容的提问来源于stack exchange,提问作者rajat yadav
相关产品推荐
相关产品推荐

