我有一个UIScrollView。在这个UIScrollView里面是一个UIView,它包含所有其他子视图(包括UIButton)。它与UIScrollView具有相同的边界。
我想:
所以我将UIScrollView的底部设置为比UIVIew略高,如下图所示:
这将使UIButton无法响应(它在左侧布局中响应)。有什么建议吗?谢谢!
我的代码的一部分:
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
[self addSubview:self.scrollView];
self.scrollContent = [[UIView alloc] initWithFrame:CGRectZero];
[self.scrollView addSubview:self.scrollContent];
self.button = [UIButton buttonWithType:UIButtonTypeCustom];
[self.scrollContent addSubview:self.button];
[self.button addTarget:self
action:@selector(buttonPressed)
forControlEvents:UIControlEventTouchUpInside];
更新
看起来正确的方法是保持滚动视图的底部并设置其contentSize,但由于我使用autolayout,我发现contentSize的高度始终为零???
答案 0 :(得分:0)
您需要将按钮放在滚动视图视图层次结构之外的视图中。
目前,命中测试失败,因为该按钮位于滚动视图边界之外但在其层次结构内。
答案 1 :(得分:0)
在尝试以下代码后,将按钮添加到滚动视图中:
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
[self addSubview:self.scrollView];
self.scrollContent = [[UIView alloc] initWithFrame:CGRectZero];
[self.scrollView addSubview:self.scrollContent];
self.scrollView.delaysContentTouches = NO; //Add this line
self.button = [UIButton buttonWithType:UIButtonTypeCustom];
[self.scrollContent addSubview:self.button];
[self.button addTarget:self
action:@selector(buttonPressed)
forControlEvents:UIControlEventTouchUpInside];