我有一個很奇怪的問題。我試圖旋轉和viewDidAppear
手動移動一個UIView的上海華像這樣:通過設置其中心屬性來移動UIView的超級視圖
- (void)viewWillAppear:(BOOL)animated
{
// ...
[self.view.superview setTransform:CGAffineTransformMakeRotation(M_PI/2)];
[self.view.superview setCenter:CGPointMake(100, 200)]; // (100, 200) is toy value
// ...
}
出於某種原因,旋轉正確應用,但上海華中心(即位置)不動的。我也嘗試將轉換設置爲CGAffineTransform
,這是旋轉+翻譯(或者僅僅是翻譯)的組合,並且也不會移動超視圖。
如果有差別,self.view.superview
是最頂端的視圖(即self.view.superview.superview
是nil
)。
我在這裏錯過了很簡單的東西嗎?
編輯:nielsbot的評論是正確的,把它放在viewDidLoad工作,但到那時,視圖已經出現,所以有一個閃爍的地方,它捕捉到新的位置。有沒有解決的辦法?
在'viewDidAppear'中嘗試它 - 您的代碼表示'viewWillAppear'。在*出現*之後,可能會運行一些佈局代碼並撤消更改。 – nielsbot
首先,通過「旋轉正確應用但超視圖完全不移動」來說清楚你想說的是什麼? – Nayan
@nielsbot工作,但有一個閃爍,因爲它首先顯示視圖,然後在那裏移動它。有沒有辦法避免這種情況? – kevlar