1
因此,UIButtons的動畫大小轉換似乎存在問題。具體而言,如果您有一個類型爲UIButtonTypeCustom的按鈕,則任何幀大小轉換都會立即發生。運動和其他動畫正常發生。UIButton與UIButtonTypeCustom動畫錯誤
有沒有人有很好的解決這個問題?我是猜測,這是因爲自定義按鈕包含圖像,並且UIView計算其轉換時出現問題。
This guy似乎找到了同樣的問題,但沒有解決方法。
下面是一個例子。圖像原點將在兩秒內從0.0.0.0到100.0,100.0平滑移動,但尺寸立即跳轉到200x200。
UIButton *tButton = [UIButton buttonWithType:UIButtonTypeCustom];
[tButton setBackgroundImage:tImage forState:UIControlStateNormal];
tButton.frame = CGRectMake(0.0, 0.0, 10.0, 10.0);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:2.0];
tButton.frame = CGRectMake(100.0, 100.0, 200.0, 200.0);
[UIView commitAnimations];
實際上,在調用setBackgroundImage之後該錯誤開始顯示,看起來像它的類型沒有區別。可以通過設置按鈕的層,以所希望的圖像的內容屬性測試(您需要#IMPORT並添加QuartzCore.framework): tButton.layer.contents =(ID)的TImage。 CGImage; 同時保持其類型設置爲UIButtonTypeCustom和移除調用了setBackgroundImage: –
Russian
2011-10-28 16:28:16
@Russian - 有趣的...我不知道如果按鈕框架實際上是動畫順利,但圖像本身立即重新調整,只是透支。我必須測試一下。 – DougW 2011-10-28 17:11:22