1

我想旋轉按鈕,形狀爲一個正方形(65 x 65)。旋轉它們後,按鈕會改變它們的大小。有什麼辦法,做一個輪換和保持大小?旋轉UIButton並保留其大小

代碼:

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.5]; 

self.stealthButton.transform = CGAffineTransformMakeRotation(radians); 
self.recButton.transform = CGAffineTransformMakeRotation(radians); 
self.toggleButton.transform = CGAffineTransformMakeRotation(radians); 
[UIView commitAnimations]; 
+0

是否要在轉換後將它們調整到原始大小?因爲它必須縮放以適合原始尺寸 – Ossir

回答

3

嘗試像這可能是它可以幫助你,

CABasicAnimation *fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    fullRotation.fromValue = [NSNumber numberWithFloat:0]; 
    fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)]; 
    fullRotation.duration = 1; 
    fullRotation.repeatCount = 1; 
    [button.layer addAnimation:fullRotation forKey:@"360"]; 

添加以下框架在您的項目。

#import <QuartzCore/QuartzCore.h> 
#import "QuartzCore/CALayer.h" 
+0

@Michal:你有答案嗎? – Balu

+0

Pefect解決方案時+ UIView:animateWithDuration:與自動佈局不工作預期! – Nianliang

0

它們不會改變它們的大小。他們改變框架的大小。

地址:

但是:這樣你會真正縮小按鈕的大小。從用戶的角度來看,它會顯得小得多。

0

確保您將內容視圖設置爲居中。

self.stealthButton.contentMode = UIViewContentModeCenter; 
self.recButton.contentMode = UIViewContentModeCenter; 
self.toggleButton.contentMode = UIViewContentModeCenter;