【发布时间】:2013-04-15 13:28:59
【问题描述】:
在滑出视图的其他内容时,我在将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);
}
(通常我会在UIView 动画中制作setFrames,但对于这个例子来说没关系,因为它无论如何都不起作用)
发生的情况是应该滑入或者更确切地说现在位于(0,0) 的视图出现,但其他视图没有移开。并且仍然显示在新视图下。
奇怪的是,日志输出所有视图都在正确的位置。 [self.view setNeedsLayout] 在setFrame 调用之间也没有改变任何东西,更有趣的是,如果我从新视图中删除setFrame,那么应该消失的视图实际上会正确消失。
【问题讨论】:
-
显然我在写这篇文章时并没有那么专注。代码示例现在应该是正确的。对不起。
-
您是否尝试过要求重新粉刷?
标签: ios objective-c ipad uiview