2012-05-08 22 views
1

专家! 请帮我这个!!!!! 在我的项目中,我正在编程创建多个UIImageviews。我想每个ImageView.i 我的代码是下面添加捏合手势....哪里可以在UIImageView上添加UIPinchgesture,它可以在UIImageView包含的UIView上进行缩放或放大?

-(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。现在,代码的[自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); 
} 

当你告诉我,我加userInteractionEnabled = YES每个的UIImageView。我在我的代码中也提到了

回答

0

您应该在UIImageView上启用userInteractionEnabled。这是默认禁用的。

如果您需要更多帮助,请告诉我们您的scalePiece:代码。

+0

- (无效)scalePiece:(UIPinchGestureRecognizer *)paramSender { 如果(paramSender.state == UIGestureRecognizerStateEnded) {self.currentScale = paramSender.scale ;} else if(paramSender.state == UIGestureRecognizerStateBegan && self.currentScale!= 0.0f){ paramSender.scale = self.currentScale;如果(paramSender.scale!= NAN && paramSender.scale!= 0.0){paramSender view] .transform = CGAffineTransformMakeScale(paramSender.scale,paramSender.scale);} 。 } 正如你告诉我,我为每个UIImageView添加了userInteractionEnabled = YES。我在我的代码中也提到 – Nevpro

+0

谁应该阅读..把它放在你的帖子中。并且描述你确切的问题。什么*不工作,什么行为错误!? – calimarkus

+0

我上面发布了我的整个代码..现在回复我,如果我的代码 – Nevpro

0

将imageView添加为ScrollView的子视图。

然后设置scrollView的scrollView zoomScale。 还实现了scrollView的委托方法,特别是下面的方法。

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

返回要放大的imageView对象。

参阅这些 UIScrollView

UIScrollViewDelegate

+0

Ohhk有任何变化..我也尝试这一个..我正在考虑用UIscrollview和hanldle替换我的UIPinchgesture其代表..Thanx for回复.. – Nevpro