返回

iOS 13 不止适配这么简单,这些坑千万别踩!

IOS

在 iOS 13 盛大登场后,许多开发者第一时间将自己的应用进行适配。然而,光从表面上看,适配工作似乎只是将代码进行简单的修改,就能顺利完成。但事实并非如此,iOS 13 隐藏着许多意想不到的坑,稍不留神就会踩中,轻则影响用户体验,重则导致应用崩溃。

坑点一:过场动画失效

在 iOS 13 中,苹果对过场动画的上下文机制进行了调整,默认情况下,过场动画会以卡片样式呈现。这意味着,如果你之前使用的是自定义过场动画,那么在 iOS 13 中很可能失效。

要解决这个问题,你需要在代码中添加以下代码:

transition.providesContext = YES;

坑点二:键盘挡住输入框

在 iOS 13 中,当键盘弹出时,如果输入框位于屏幕底部,可能会被键盘挡住,导致用户无法输入内容。

要解决这个问题,你需要在代码中添加以下代码:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.textField attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-self.keyboardHeight]];

坑点三:状态栏变为黑色

在 iOS 13 中,状态栏默认变为黑色。如果你之前使用的是白色状态栏,那么在 iOS 13 中需要进行修改。

要解决这个问题,你需要在代码中添加以下代码:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

坑点四:图片拉伸失真

在 iOS 13 中,图片的拉伸方式发生了变化。如果你之前使用的是自定义的图片拉伸方式,那么在 iOS 13 中很可能失真。

要解决这个问题,你需要在代码中添加以下代码:

imageView.contentMode = UIViewContentModeScaleAspectFill;

坑点五:getUniqueStrByUUID 失效

在 iOS 13 中,getUniqueStrByUUID 方法已经失效。如果你之前使用的是该方法,那么在 iOS 13 中需要进行修改。

要解决这个问题,你可以使用以下代码生成唯一字符串:

NSUUID *uuid = [NSUUID UUID];
NSString *uniqueStr = [uuid UUIDString];

写在最后

iOS 13 的适配工作看似简单,但实际上暗藏玄机。如果你不注意这些坑点,很可能会给用户带来糟糕的体验。因此,在进行适配工作时,一定要仔细检查代码,避免踩中这些坑。

本文总结了 iOS 13 中常见的五个坑点,希望能帮助开发者顺利完成适配工作。如果遇到其他问题,欢迎在评论区留言讨论。