我有一個UIButton,每當我點擊它時,我都希望它以一定量旋轉。如果我用這個代碼,並將其旋轉正好90度逆時針:當我使用CGAffineTransformRotate時,爲什麼我的按鈕會消失?
CGAffineTransform transform = CGAffineTransformRotate(self.transform,
(-M_PI * 2.0) * 0.25);
self.transform = transform;
一切正常(這也適用,如果我用一個正值,順時針旋轉)。但是,如果我嘗試將按鈕旋轉45度:
CGAffineTransform transform = CGAffineTransformRotate(self.transform,
(-M_PI * 2.0) * 0.125);
我的按鈕只是完全消失。如果我這樣做:
CGAffineTransform transform = CGAffineTransformRotate(self.transform,
(-M_PI * 2.0) * 0.20);
該按鈕雖然角度看起來是正確的,但是很奇怪地拉長了。
我只是想旋轉我的按鈕,沒有任何調整大小,在任何我想要的角度 - 我在這裏做錯了什麼?
更新:只有當我試圖移動/定位我的按鈕在viewDidLayoutSubviews
內時纔會發生這種情況。我猜這是因爲變換的結果是調用viewDidLayoutSubviews,此時定位全部搞砸了。
如果我不試圖將按鈕放置在viewDidLayoutSubviews中,並且只在加載按鈕時設置autoresizingMask,它會在中間保持其正確的位置 - 除非通過更改轉換來旋轉它。此旋轉工作並旋轉按鈕到位,但只要我將設備旋轉到風景並回到肖像(有時只是當我去風景時),按鈕就會完全消失。
這個技巧似乎只適用於一個無需移動的控件(除了旋轉的東西)。
我無法複製此內容。你確定你沒有其他轉換應用到按鈕?例如,您不能任意旋轉已翻譯的內容。請提供一份MCVE http://stackoverflow.com/help/mcve。 –
@RobNapier:aha,如果我在'viewDidLayoutSubviews'中設置我的按鈕的位置,就會發生。如果我不試圖將其定位在那裏,則旋轉按預期正常進行。 – MusiGenesis