0

このイベントで試してみましたが、スクロールイベントが必要で、ボタンクリックイベントも必要です。ここで複数の uiview を使用し、その中にボタンを配置しました (アクション スクロールとボタン アクションの両方が必要です)。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
   if ([self pointInside:point withEvent:event]) {
           return _scrollView;
   }
   return nil;

}

上記のコードでは、スクロール アクションは発生していますが、ボタン アクションは発生していません。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
   if ([self pointInside:point withEvent:event]) {
           return nil;
   }
   return nil;

}


上記のコードではボタン アクションが発生していますが、スクロールはそのビューに対してのみ発生しており、他のスクロール ビューをスクロールすることはできません。

4

1 に答える 1

1

簡単な解決策は、スクロールビューにページングを適用するスクロールビューを追加し、スクロールビュー内に Uiview を追加することです。5 つのビューを表示する必要があるとします。

yourScroll = [[UIScrollView alloc]init];
yourScroll.frame = CGRectMake(45, 45, 230, 300);
yourScroll.backgroundColor =   [UIColor clearColor];
yourScroll.contentSize = CGSizeMake(yourScroll.frame.size.width * 5, yourScroll.frame.size.height);
[yourScroll setPagingEnabled : YES];
[yourScroll setDelegate:self];

int incX = 0 ;

for( int i = 0; i < 2; i++)
{
 UIView *myView = [[UIView alloc]initWithFrame:CGRectMake (incX,0,yourScroll.frame.size.width,yourScroll.frame.size.height)];
//Create a button and give it the tag like    
button.tag = i;
//Now add a selector to the button and add the button to your view;
[myView addSubview:button]
[yourScroll addSubview:myView];
    incX+= 230;
}

そして今、これはボタンクリックの助けを借りてスクロールするためのセレクタです:

- (IBAction)changePage:(id)sender
{
int page = [sender tag];
NSLog(@"the page is = %i",page);
CGRect frame = yourScroll.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[yourScroll scrollRectToVisible:frame animated:YES];
}
于 2012-12-08T08:45:54.997 に答える