提问人:Louis Liang 提问时间:2/24/2022 更新时间:2/25/2022 访问量:672
在 UIScrollView 中禁用子视图的滚动
Disable scroll of a subview in a UIScrollView
问:
我在滚动视图的顶部有一个视频播放器视图,我添加了垂直滑动以调整音量和亮度功能。
问题是当我在播放器视图中滑动以调节音量时,滚动视图也会滚动,我该如何防止它?
答:
1赞
Shawn Frank
2/25/2022
#1
这可能适用于您的用例。
我假设您在视频视图上添加了一个,因此在操作处理程序中,您可以在手势的状态为 or 时禁用滚动视图,并为任何任何状态(例如 或pan gesture
.began
.changed
ended
cancelled
我是这样做到的:
@objc
func didPan(_ panGesture: UIGestureRecognizer)
{
scrollView.isScrollEnabled
= panGesture.state != .began && panGesture.state != .changed
/* The above is the same as these lines of code
if panGesture.state == .began || panGesture.state == .ended
{
scrollView.isScrollEnabled = false
return
}
scrollView.isScrollEnabled = true
*/
}
下面是使用此代码所发生情况的示例:
- 当我平移视频时,它会显示一个标签并阻止滚动视图移动
- 当我在滚动视图内但在视频区域(黄色区域)之外的另一个视图上平移时,它处于活动状态
评论
yourScrollView.isScrollEnabled = false