1

専門家!!これで私を助けてください!!!!! 私のプロジェクトでは、プログラムで複数の UIImageviews を作成しています。各 ImageView.i にピンチ ジェスチャを追加したい 私のコードは以下のとおりです....

-(IBAction)addSymbols:(UIButton *)sender{
if (sender.tag ==1) {
CGRect frame =sender.frame;
[self.imgView setFrame:frame];
self.imgView.userInteractionEnabled = YES;
[imgView setImage:[sender imageForState:UIControlStateNormal]];
[self.view addSubview:imgView];
[self addGestureRecognizersToPiece:imgView];}

このように、5 つの imageView を追加しています。[self addGestureRecognizersToPiece:imgView] のコード

- (void)addGestureRecognizersToPiece:(UIView *)piece{
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scalePiece:)];
[piece  addGestureRecognizer:pinchGesture];

//In above add gesture on UIImageView directly its not working..
//if replace this line by [self.view addGestureRecognizer:pinchGesture]; it's working..
//but while pinch whole UIview scale

[pinchGesture setDelegate:self]; }

もう 1 つのバグは、UIPinchgesture が複数の UIImageView で個別に正しく動作しないことです。だから私を助けてください..すぐに返信してください..

- (void) scalePiece:(UIPinchGestureRecognizer*)paramSender{ 

if (paramSender.state == UIGestureRecognizerStateEnded) { 
self.currentScale = paramSender.scale;
} 
else if (paramSender.state == UIGestureRecognizerStateBegan && self.currentScale != 0.0f){ 

paramSender.scale = self.currentScale; }
 if (paramSender.scale != NAN && paramSender.scale != 0.0){ 
[paramSender view].transform= CGAffineTransformMakeScale(paramSender.scale, paramSender.scale); 
} 

あなたが私に言ったように、UIImageViewごとにuserInteractionEnabled = YESを追加しました。私のコードでも言及しています

4

2 に答える 2

0

ScrollView のサブビューとして imageViews を追加します。

次に、scrollView の scrollView zoomScale を設定します。scrollView のデリゲート メソッド、特に以下のメソッドも実装します。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

ズームしたい imageView オブジェクトを返します。

これらのUIScrollViewを参照してください

UIScrollViewDelegate

于 2012-05-08T11:50:11.357 に答える
0

userInteractionEnabledUIImageViewsで有効にする必要があります。これはデフォルトで無効になっています。

scalePiece:さらにサポートが必要な場合は、コードを提示してください。

于 2012-05-08T11:27:22.567 に答える