2013-08-07 1 views
3

У меня есть 10 UIButtons, расположенных друг к другу в моем приложении, а общие размеры кнопок - 640x96.UIButtons получает события касания при добавлении непосредственно в scrollview, но не косвенно

Если я добавлю эти кнопки непосредственно в 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!"); 
} 

ответ

2

Пока я писал вопрос, который я зафиксировал проблему: D

Все, что я должен был сделать, чтобы установить рамку UIView перед тем, как установить содержимое прокрутки.

В моем случае:

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

Надеется, что это помогает!