UIView 改变方向后消失

Posted

技术标签:

【中文标题】UIView 改变方向后消失【英文标题】:UIView disappears after orientation change 【发布时间】:2011-08-31 09:49:08 【问题描述】:

我有当前的问题: 从 NSObject 我正在创建/加载和动画视图:

[UIView beginAnimations:@"slidein" context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];


[content.view setAlpha:1.0];
for (UIView *view in content.view.subviews) 
    [view setAlpha:1];

[content.view setFrame:CGRectMake(0, 0, self.contentEnclosure.size.width, self.contentEnclosure.size.height)];


[UIView commitAnimations];

我的问题是,当方向改变时,我的动画视图消失了。如果我让我的视图再次出现,方向设置(帧大小)是正确的,所以我猜,调整大小的蒙版应用正确,我只是不明白需要做什么,我的视图不会消失.

【问题讨论】:

在orientation方法中为view分配frame时,检查view是否存在。有同样的问题,只有在出现时才分配值解决了它! 我最终解决了它,只是忘记更新我的帖子。确实,每次更改方向时,都需要确保最前面视图的每个子视图都是可见的,然后才进行更改。 Exquinoxe 你能详细说明你是如何解决的吗?在 iPad 上更改方向后,我的 UISearchBar 消失了 【参考方案1】:

使用 NSLog 并在定向后分别检查新的self.view.frame.origin.xy

然后根据需要设置框架。

另外,检查调整蒙版的大小。尝试使用UIViewAutoresizingFlexibleRightMargin/LeftMargin 来满足您的要求。

【讨论】:

以上是关于UIView 改变方向后消失的主要内容,如果未能解决你的问题,请参考以下文章

UIView 在用户交互后消失

即使在采取响应操作后,UIAlertView 也不会消失

将 UIView 滑动到一边,让他消失 - ios

点击 UITableViewCell 时 UIView 消失

主视图控制器在点击项目并快速将方向从纵向更改为横向后消失

导航栏中的iOS UIButton在执行变换动画后消失