我在滑出视图的其他内容时将UIView
滑入另一个内容时出现了一个奇怪的问题。
这是代码:
- (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
动画中执行UIView
s,但这个例子并不重要,因为它无论如何都不起作用)
发生的情况是,应该滑入的视图现在位于(0,0)
,但其他视图不会移开。并且仍然显示在新视图下。
奇怪的是,日志输出所有视图都在正确的位置。 [self.view setNeedsLayout]
调用之间的setFrame
也不会改变任何内容,更有趣的是,如果我从新视图中删除setFrame
,那么应该消失的视图确实会正确消失。
答案 0 :(得分:0)
这一行有一个错字:
CGRect viewFrame2 = self.viewThatShoudlDisappear1.frame;
据推测,这应该是:
CGRect viewFrame2 = self.viewThatShoudlDisappear2.frame;
答案 1 :(得分:0)
当我意外地从后台线程中使用UIKit时,我看到了类似这样的奇怪事情。 UIKit只能在主线程中使用。
答案 2 :(得分:0)