在 ScrollView 中禁用按钮 - iOS Swift

Ali*_*him 6 scroll uiscrollview ios swift

我在 ScrollView 内的视图中的视图中有一个按钮:

UIScrollView
-ContentView
--PhoneNumberView
---UIButton
Run Code Online (Sandbox Code Playgroud)

如果 ScrollView 的滚动能力被禁用,按钮会正常点击。但是,如果启用滚动,则按钮似乎被禁用。

这是我发送 ScrollView 的内容大小的方式:

var contentRect = CGRectZero;
for view in self.contentView.subviews {
     contentRect = CGRectUnion(contentRect, view.frame)
}
scrollView.contentSize = contentRect.size
scrollView.contentSize.height = scrollView.contentSize.height+20
Run Code Online (Sandbox Code Playgroud)

我还设置了这些属性

scrollView.userInteractionEnabled = true
scrollView.exclusiveTouch = true
scrollView.canCancelContentTouches = true
scrollView.delaysContentTouches = true
Run Code Online (Sandbox Code Playgroud)

我终于尝试创建 UIScrollView 的子类,我最终得到了这个:

class myScrollView: UIScrollView {

    override func touchesShouldCancelInContentView(view: UIView) -> Bool {
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)

但只要有任何滚动,按钮仍然不活动。

我该如何解决?

Bha*_*iya 8

设置ContentView&的颜色Scrollview。我认为你设置错误contentsize。而你PhoneNumberViewcontentsize高度之外。

编辑

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

  • 计算内容视图的高度并将该高度设置为 contetsize 的高度。 (2认同)