UIButtons直接添加到scrollview但不是间接添加触摸事件

时间:2013-08-07 16:46:09

标签: ios uiview uiscrollview uibutton subview

我的应用程序中有10个UIButtons左右堆叠,按钮的总尺寸为640x96。

如果我将这些按钮直接添加到UIScrollView,它们会注册触摸事件并且可以滚动。

但是如果我尝试将它们添加到普通的UIView中,那么将UIView添加到scrollview中,它们就不起作用了。

这是我的代码:

- (void)viewDidLoad
{
[super viewDidLoad];
UIView *fview = [[UIView alloc] init];
fview.frame = CGRectMake(0, 0, 640, 96);
fview.backgroundColor = [UIColor blackColor];
[fview setUserInteractionEnabled:YES];
[_sv setUserInteractionEnabled:YES];

for (int i=0; i<10; i++)
{
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.frame = CGRectMake(64*i, 0, 64, 96);
        [button setTitle:@"Click Me!" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
        [fview addSubview:button];
}
[_sv addSubview:fview];
_sv.contentSize = CGSizeMake(640, 96);
}

-(void)buttonClicked:(id)sender {
    NSLog(@"Clicked!");
}

1 个答案:

答案 0 :(得分:2)

当我写这个问题时,我解决了问题:D

在设置scrollview的内容之前,我所要做的就是设置UIView的框架

就我而言:

[_sv addSubview:fview];
fview.frame = CGRectMake(0, 0, 640, 96); // Added line
_sv.contentSize = CGSizeMake(640, 96);

希望这有帮助!