我在滑出視圖的其他內容時將UIView
滑入另一個內存時出現了一個奇怪的問題。連續調用一些[UIVIew setFrame:]不會執行所有這些
這是代碼:
- (void)moveAddStudentViewIntoSuperView
{
CGRect viewFrame1 = self.viewThatShoudlDisappear1.frame;
CGRect viewFrame2 = self.viewThatShoudlDisappear2.frame;
CGRect newFrame = self.viewControllerThatshouldAppear.view.frame;
viewFrame1.origin.x = -300;
viewFrame2.origin.x = -300;
newStudentFrame.origin.x = 0;
NSLog(@"\n 1: %@ \n 2: %@ \n 3: %@", self.viewThatShoudlDisappear1, self.viewThatShoudlDisappear2, self.viewControllerThatshouldAppear.view);
[self.viewThatShoudlDisappear1 setFrame:viewFrame1];
[self.viewThatShoudlDisappear2 setFrame:viewFrame2];
[self.viewControllerThatshouldAppear.view setFrame:newFrame];
NSLog(@"\n 1: %@ \n 2: %@ \n 3: %@", self.viewThatShoudlDisappear1, self.viewThatShoudlDisappear2, self.viewControllerThatshouldAppear.view);
}
(通常我會做setFrame
S IN一UIView
動畫,但因爲它沒有工作,無論如何也不要緊,這個例子)
會發生什麼情況是應該滑入的視圖或者現在位於(0,0)
出現,但其他視圖不會移開。並且仍然在新視圖下顯示。
奇怪的是,日誌輸出的所有視圖都處於正確的位置。 [self.view setNeedsLayout]
之間的setFrame
調用不會改變任何東西,更有趣的是,如果我從新視圖中刪除setFrame
,應該消失的視圖確實會消失。
很明顯,當我寫這篇文章時我並不是那麼專注。代碼示例現在應該是正確的。抱歉。 – Phil
你有沒有試過要求他們重新粉刷? –