这是一个滚动视图(它是灰色区域)。内容区域为黄色。请注意它是插入的,以便您可以将内容的两侧滚动到屏幕中间。
问题:你可以将手指放在灰色区域并滚动它。
我希望它能够工作,这样你只需将手指放在黄色内容上即可滚动。如果你把手指放在灰色"背景"并尝试滚动它,什么都不应该发生。
怎么做?
黄色内容完全向右滚动,它位于此处:
黄色内容完全向左滚动,它位于此处:
答案 0 :(得分:1)
创建UIScrollView
的子类。给它一个黄色视图的参考。覆盖pointInside:withEvent:
以返回false
,除非该点位于黄色视图的框架中。
class MyScrollView: UIScrollView {
@IBOutlet var yellowView: UIView?
override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
return yellowView?.frame.contains(point) ?? false
}
}
答案 1 :(得分:-1)
这应该有效。
在scrollViewWillBeginDragging
中你记得拖动开始的坐标,在scrollViewDidScroll
你确定是否在黄色区域内开始拖动并且什么也不做(允许滚动正常发生),在其他情况下你返回ScrollView {{1} }属性到contentOffset