use*_*152 9 iphone objective-c uibutton uiscrollview ios
我遇到了UIScrollView的奇怪行为,在放大UIScrollView的contentSize后我无法点击UIButton.
我想做什么:
使用UIScrollView显示表单
单击提交按钮后,滚动视图将放大一些高度以显示更多信息.
在进一步的信息中,我将放置并显示另一个UIButton(隐藏在开头),以便处理下一步.
问题是我将新UIButton放置到放大区域并且按钮不可点击,而我将UIButton放置到现有区域(滚动视图的初始帧),然后按钮正常工作.对于这两种情况,滚动视图的滚动条执行正常行为.(即,滚动结束是新的内容高度)
这是我到目前为止:
一个UIView xib(放置其中的所有元素,包括隐藏按钮)
一个UIScrollView(将UIView xib加载到其中)
UIView* view = [[[NSBundle mainBundle] loadNibNamed:@"view" owner:self options:nil] objectAtIndex:0];
[view loaded];
[scrollView addSubview:view];
// offset = some amount;
[scrollview setContentSize:CGSizeMake(scrollview.contentSize.width, scrollview.contentSize.height+offset)];
// h = some amount before the end of the scroll view
CGRect r = nextBtn.frame;
r.origin.y = h;
nextBtn.frame = r;
[nextBtn setHidden:NO];

我试图更改滚动视图的clipSubviews属性,但似乎它根本不适用于我的情况.
谁知道它是怎么发生的?有没有更好的方法来完成这项工作?(调整滚动视图的大小,然后在其中放置另一个按钮)
任何帮助都会很棒!非常感谢!
yur*_*ish -1
我假设该按钮是您从 xib 文件加载的内容视图的直接或间接子级。
问题是因为您更改了滚动视图,contentSize但没有更改内容视图的框架。超级视图参与触摸命中测试。您可以将子视图放置在其父视图边界之外,默认情况下,子视图不会被剪切,但触摸事件不会传递给它,因为父视图在命中测试期间检查触摸是否超出其边界并拒绝触摸。UIView hitTest:withEvent:详情请参阅。
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |