簡體   English   中英

在UIImageView的哪個比例上或UIImageView包含的UIView的何處添加UIPinchgesture?

[英]Where to add UIPinchgesture on UIImageView which scale or on UIView in which UIImageView contain?

專家!! 請幫助我! 在我的項目中,我以編程方式創建了多個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個imageViews。 現在的[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]; }

另一個錯誤是UIPinchgesture無法在多個UIImageViews上單獨正確工作。 所以請幫助我..盡快回復我..

- (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。 我也在代碼中提到

您應該在UIImageViews上啟用userInteractionEnabled 默認情況下禁用此功能。

如果您需要更多幫助,請向我們顯示您的scalePiece:代碼。

將imageViews添加為ScrollView的子視圖。

然后設置scrollView的scrollView zoomScale。 還應實現scrollView的委托方法,尤其是以下一種方法。

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

返回要縮放的imageView對象。

參考這些UIScrollView

UIScrollViewDelegate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM