我在滑出视图的其他内容时将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
你有没有试过要求他们重新粉刷? –