UIView
クリックしてズームする必要があり、ズーム中およびズーム後UITapGestureRecognizer
に実行したいアプリケーションに取り組んでいます。IBAction
これは可能ですか?その小さな例を教えてください。
質問する
349 次
3 に答える
1
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleDoubleTap:)];
tapGestureRecognizer.numberOfTapsRequired = 2;
[self.scrollContainer addGestureRecognizer:tapGestureRecognizer];
}
- (void)handleDoubleTap:(UIGestureRecognizer *)recognizer
{
if(isAlreadyZoomed)
{
CGPoint Pointview = [recognizer locationInView:recognizer.view];
CGFloat newZoomscal = 3.0;
CGSize scrollViewSize = self.scrollContainer.bounds.size;
CGFloat width = scrollViewSize.width/newZoomscal;
CGFloat height = scrollViewSize.height /newZoomscal;
CGFloat xPos = Pointview.x-(width/2.0);
CGFloat yPos = Pointview.y-(height/2.0);
CGRect rectTozoom = CGRectMake(xPos, yPos, width, height);
[self.scrollContainer zoomToRect:rectTozoom animated:YES];
[self.scrollContainer setZoomScale:3.0 animated:YES];
isAlreadyZoomed = NO;
}
else
{
[self.scrollContainer setZoomScale:1.0 animated:YES];
isAlreadyZoomed = YES;
}
}
于 2013-04-10T13:37:39.383 に答える
0
IBAction は、void を返し、0 または 1 つの引数のみを取る通常のメソッドです。
他の王様のメソッドを呼び出すのと同じように、それらをコードで呼び出すことができます。
UITapGestureRecognizer は、トリガー中に IBAction メソッドを呼び出すように設計されています。InterfaceBuilderまたはコードで設定できます
たとえば、次のコード
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
tap.numberOfTapsRequired = 2;
[imageView addGestureRecognizer:[tap cop]];
ユーザーがimageViewをダブルタップすると、このメソッドが呼び出されます
- (void) handleTap:(UITapGestureRecognizer *)sender;
このメソッドでは、サブビューの管理、他のメソッドの呼び出しなど、必要なことはほとんど何でもできます。ただし、ズームインとズームアウトを計画している場合は、UIView クラスではなく UIScrollView クラスを使用することを強くお勧めします。 .
乾杯
于 2013-04-10T10:21:33.303 に答える
0
こんにちは、以下があなたにアイデアを与えることを願っています.....
UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewDoubleTapped:)];
tap2.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:tap2];
- (void) scrollViewDoubleTapped:(UITapGestureRecognizer *)sender
{
scrollZoomAdjust.zoomScale=2.0f;// set your required Zoom scale
// scrollZoomAdjust is the scroll view that contain the image within it
}
上記のコードはテストされていません
于 2013-04-10T11:07:26.737 に答える