UIWindow 子视图在 ios 13 上立即消失

UIWindow subview disappear immediately on ios 13

提问人:Muhammad Fauzi Masykur 提问时间:10/1/2019 更新时间:10/1/2019 访问量:616

问:

我正在升级我的应用程序以使用 iOS 13。我一直在使用 UIWindow 将图像添加到当前屏幕。但是,在ios 13中,图像会出现,但随后会立即消失。我尝试在以前的版本(即 ios 12.2)中构建,并且运行良好。

这是我的代码:

 UIWindow *currentWindow = [UIApplication sharedApplication].keyWindow;

    UIImage *image = [UIImage imageNamed:@"test_badge" inBundle:VTBundle compatibleWithTraitCollection:nil];
    UIImageView *badgeImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, [currentWindow bounds].size.height-115, 115, 115)];
    badgeImageView.tag =100101;
    badgeImageView.image = image;

    [currentWindow addSubview:badgeImageView];
Objective-C iOS13 UIVoop KeyWindow

评论

0赞 holex 10/1/2019
您不应直接向实例添加任何子视图,这从来都不是 iOS 上 view-hiearchy 的有效配置;您应该只添加一个 rootViewController,然后它可以有自己的视图实例的子视图。UIWindow
0赞 Sulthan 10/1/2019
@holex 向 添加视图基本上没有错。许多应用程序都有合法的用例。但是,在大多数情况下,使用 a 是一个更好的主意。UIWindowUIViewController
1赞 holex 10/1/2019
@Sulthan,从根本上说,直接向实例添加子视图是错误的,没有合法的理由这样做;然而,因为以前被允许这样做,所以开发人员无耻地这样做了——但这并不能使它合法。UIWindow
0赞 Anjula Serasinghe 10/1/2019
@Sulthan同意这一点,这在以前是允许的,但这样做是所有开发人员的共同罪行,现在苹果正在发展,我认为每个人都应该注意以适应。尽管一旦等级制度发生变化,其中一些可能不会产生直接影响,但有些影响是非常明显的。退房。以前它是在 UIView 下,现在它已经更改为它正在显示重大变化,但开发人员仍在使用它,从长远来看,这不会是一件好事UISwipeActionStandardButtonUITableView
0赞 Efesus 1/8/2020
@holex当您需要在键盘顶部显示视图时,您需要获取顶部窗口并在其上添加视图。虽然这不是一个很好的解决方案,但我不知道任何其他解决方案

答: 暂无答案