【发布时间】:2013-06-04 22:35:00
【问题描述】:
所以我试图让一个简单的 UIScrollView 与一堆按钮一起工作。我使用以下代码成功地完成了这项任务:
- (void)viewDidLoad
{
[super viewDidLoad];
[_scroller setScrollEnabled:YES];
[_scroller setContentSize:CGSizeMake(320, 1487)];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, -500, 320, 2800)];
[imgView setBackgroundColor:[UIColor blackColor]];
[_scroller addSubview:imgView];
UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn1 setTitle:@"Cool title" forState:UIControlStateNormal];
[btn1 setFrame:CGRectMake(7, 7, 150, 160)];
[btn1 setImage:[UIImage imageNamed:@"small.png"] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(btn1_m) forControlEvents:UIControlEventTouchUpInside];
[_scroller addSubview:btn1];
但是,如果我通过界面生成器添加按钮而不是以编程方式添加它们会怎样?每当我这样做时,滚动条就不再滚动了!
例如,如果我在控制拖动按钮后使用以下代码:
- (IBAction)theButton:(UIButton *)sender {
[_scroller addSubview:sender];
}
- (void)viewDidLoad
{
[super viewDidLoad];
[_scroller setScrollEnabled:YES];
[_scroller setContentSize:CGSizeMake(320, 1487)];
}
...滚动不起作用,我看到了按钮,但不再滚动。基本上,我只想使用界面生成器向我的应用程序添加按钮并让它们滚动,但似乎无法让它工作!
【问题讨论】:
-
你添加方法“btn1_m”了吗?
-
是的,我做到了。如果以编程方式或使用 Interface Builder 完成,它会正确调用该方法,但如果通过 Interface Builder 完成,则滚动会死掉。
-
可能是 UIImageView 块滚动。您确定其他控件没有与滚动重叠吗?
-
即使不包含 UIImageView,我也会得到相同的结果。我确定原因与按钮未正确添加到子视图或其他原因有关
标签: ios uiscrollview