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