2012-09-24 139 views
0

我想旋轉圖像使用滑塊..它工作得很好,但是當我放大或縮小該圖像使用捏手勢,然後嘗試使用滑塊旋轉它,然後它調整imageView的幀到它的原始幀,然後旋轉它..我希望它執行縮放操作後旋轉新的圖像視圖...繼承我的代碼。ImageView旋轉使用滑塊

//for rotation 
- (IBAction)sliderChanged:(id)sender 
{ 
    imageView.transform = CGAffineTransformMakeRotation(Slider.value * 2*M_PI/Slider.maximumValue); 
} 
//for zoom in zoom out 
- (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer 
{ 

    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform,  recognizer.scale, recognizer.scale); 
    recognizer.scale = 1; 

} 
+0

他們都..雖然這是一個古老的線程,但我堅持這個幾天..我有一個uislider功能的縮放和旋轉手勢旋轉圖像查看縮放工作正常,直到和除非旋轉沒有完成,但旋轉後縮放行爲怪異!任何人都可以幫助我,我已經沿着線程進行搜索,但沒有得到任何類似於這個線程。一定幫助我! –

回答

1

handlePinch您正確地修改現有的變換,但在sliderChanged創建新的轉換,輸球比例。

+0

是不是有沒有任何方法可以旋轉而不會丟失以前的變換? –

+0

您將記住上一個旋轉角度,因爲'CGAffineTransformRotate'將*旋轉*角度而不旋轉*角度。或者記住最後一個縮放比例,並用'CGAffineTransformMakeScale'重新創建變換,然後旋轉它。 – mifki

+0

謝謝..現在可以工作....我之前使用CGAffineTransformMakeRotation .. –

1

您不保持規模。一個有效的例子:

-(IBAction)zoomIn:(id)sender{ 
    x += 0.3; 
    CGAffineTransform t; 
    t=CGAffineTransformMakeRotation(degrees*M_PI/180); 
    imageView.transform=CGAffineTransformScale(t, x, x); 
} 

您正在使用CGAffineTransformScale中的recognizer.view.transform。嘗試使用imageView.transform

+0

我已經嘗試使用imageView.transform ..我猜你的代碼是旋轉後的縮放..我正在尋找旋轉後放大..旋轉放大的圖像... –

+0

Hie all ..它是一個古老的線程雖然但即時卡住這幾天..我有一個uislider功能的縮放和旋轉手勢旋轉圖像視圖縮放工作正常,直到和除非旋轉沒有完成,但旋轉後的縮放行爲怪異! !任何人都可以幫助我,我已經沿着線程進行搜索,但沒有得到任何類似於這個線程。一定幫助我! –

+0

什麼是度? – Gaurav