【问题标题】:added subview won't show after the app relaunch应用重新启动后添加的子视图不会显示
【发布时间】:2011-12-24 22:07:42
【问题描述】:

我在应用重新启动时添加了一个子视图,在 applicationDidBecomeActive 被调用,但它没有显示,可能是什么原因?

- (UIView *)mySubView {
    if (_mySubView == nil) {
       _mySubView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
       _mySubView.opaque = NO;
       _mySubView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];
       _mySubView.exclusiveTouch = YES;
       [_mySubView setUserInteractionEnabled:NO];
    }

    return _mySubView;
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    UIWindow *window = [[[UIApplication sharedApplication] windows] objectAtIndex:0];
    [window addSubview:[self mySubView]];
}

更有趣的是 - 如果我让应用程序启动,关闭设备,然后重新打开设备,它就会显示。但是如果我关闭应用程序,然后重新启动它,我将无法看到子视图。

【问题讨论】:

  • 在尝试使用 Ecarrion 和 Hardic 提供的解决方案后,我仍然看到相同的行为,不明白为什么重新启动时会出现如此奇怪的行为,比较其他场景

标签: iphone window subview


【解决方案1】:

请像这样添加以下行,

- (void)applicationDidBecomeActive:(UIApplication *)application     
{

   UIWindow *window = [[[UIApplication sharedApplication] windows] objectAtIndex:0];

   [window addSubview:[self mySubView]];

   [window makeKeyAndVisible];

 }

同时改变颜色[UIColor blueColor];

你肯定会看到效果

享受吧!

【讨论】:

  • 这似乎没有帮助,我仍然看到相同的行为。在 addSubview 调用之后加载的视图控制器是否可以以某种方式覆盖它?如果是这样,是否有确定的方法来克服这种情况?
【解决方案2】:

如果你在你的 App 委托上并且你有一个 window 属性,你应该有,你可以简单地这样做:

[[self window] addSubview:[self mySubView]];

要设置窗口属性,请执行以下操作:

在您的 AppDelegate.h 中

@property (strong, nonatomic) UIWindow *window;

在您的 AppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

.
.
.
//Create your main controller
.
.
.

[self.window setRootViewController:mainController];
[self.window makeKeyAndVisible];

【讨论】:

  • 我的应用委托上没有窗口属性。我怎么能得到/设置它?否则在引用 window 属性时会崩溃。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-01
  • 2020-01-05
  • 1970-01-01
相关资源
最近更新 更多