我们可以在UIScrollView中放置UIButton,反之亦然

时间:2010-05-14 10:39:04

标签: iphone uibutton

有人可以为给定方案提供代码示例吗?

2 个答案:

答案 0 :(得分:1)

UIScrollView *scrollview = [[[UIScrollView alloc] initWithFrame:CGRectMake(0.0F, 0.0F, 320.0F, 480.0F)] autorelease];
[self.view addSubview:scrollView];

UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button setFrame:CGrectMake(0.0F, 0.0F, 50.0F, 50.0F)];
[scrollView addSubview:button];

如果您必须将子视图添加到UIButton,那么您只需按相反的顺序添加:

UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button setFrame:CGrectMake(0.0F, 0.0F, 50.0F, 50.0F)];
[[self.view addSubview:button];
UIScrollView *scrollview = [[[UIScrollView alloc] initWithFrame:CGRectMake(0.0F, 0.0F, 320.0F, 480.0F)] autorelease];
[button addSubview:scrollView];

但除非您在滚动视图上将scrollviewuserInteractionEnabled属性设置为exclusiveTouch,否则NO将阻止该按钮的触摸。但是这会打败我认为在按钮内部滚动视图的目的。

答案 1 :(得分:0)

如果你的按钮无法点击,那么只需查看视图的内容大小(如果是IB,则为self.view)。它应该大于或等于scrollView的大小。在我的情况下,我将scrollView的内容大小设置为 -

self.scrollView.contentSize=CGSizeMake(320,580);

并将视图作为子视图添加到scrollView

[self.scrollView addSubview:self.view];

并没有设置视图的大小。这就是我的错误。默认视图高度为480  在3.5英寸视网膜显示器的情况下和在4英寸视网膜的情况下568。

所以我通过将视图的内容大小设置为 -

来解决这个问题
self.view.frame=CGRectMake(0, 0, 320, 700);

并将此视图添加为scrollview的子视图。