• iOS 针对于13.0和暗黑模式出现的适配问题


    1,更新了Xcode11.0之后,在iOS13.0中presentViewController和之前弹出的样式不一样。

    恢复到之前样式的解决方案:(设置VC.modalPresentationStyle)

    viewcontroller *vc = [[viewcontroller alloc]init];

    vc.modalPresentationStyle = UIModalPresentationFullScreen;

     [weakSelf presentViewController:webView animated:YES completion:nil];

    2,友盟崩溃问题

    解决方案:更新最新的友盟SDK

    3,13.0暗黑模式来袭,如何先屏蔽13.0的暗黑模式

    解决方案:info文件中加入

    <key>UIUserInterfaceStyle</key>

    <string>Light</string>

    4,增加了蓝牙一直使用的权限请求

    解决方案:在info.plist里增加

    <key>NSBluetoothAlwaysUsageDescription</key>

    <string>我们想要一直使用您的蓝牙功能来使定位更准确</string> 
     
    5,UITextField的私有KVC- (void)setValue:(nullable id)value forKeyPath:(NSString *)keyPath 会导致崩溃问题(其他的控件KVC可能也会导致崩溃问题,目前还未发现,请谨慎使用)
    例如[_PhonetextField setValue:self.placeholdersColor forKeyPath:@"_placeholderLabel.textColor"];
    解决方案:NSMutableAttributedString *placeholderString = [[NSMutableAttributedString alloc] initWithString:placeholder attributes:@{NSForegroundColorAttributeName : self.placeholderColor}]; _textField.attributedPlaceholder = placeholderString;
     
    6,iOS 13.0获取deviceToken方法更改
    之前的获取方式:

    [[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]

                                     stringByReplacingOccurrencesOfString: @">" withString: @""]

                                    stringByReplacingOccurrencesOfString: @" " withString: @""]

     
    13.0后的获取方式:

    if (![deviceToken isKindOfClass:[NSData class]]) return;

            const unsigned *tokenBytes = [deviceToken bytes];

            NSString *deviceTokens = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",

                                  ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),

                                  ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),

                                  ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];

        NSLog(@"deviceTokens:_______________%@",deviceTokens);

    7,iOS 13.0暗黑模式运行后发现状态栏变为白色,设置[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault不起作用

    解决方案:首先可能是 info.plist

    <key>UIViewControllerBasedStatusBarAppearance</key>

    <false/>

    false换成true可以设置全局为黑色,但是如果部分界面需要用到白色的状态栏颜色,不能设置全局黑色,那么在最新的iOS13.0新增了状态栏颜色属性UIStatusBarStyleDarkContent

    在需要设置成黑色的控制器中加入iOS 13.0的判断

    -(void)viewWillAppear:(BOOL)animated{

        if (@available(iOS 13.0, *)) {

            [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDarkContent;

        } else {

            [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;

        }

    }

     8,在最新的iOS13.0后苹果强制加入了 Sign in with Apple(苹果登录),如果您的app中包含了其他的三方登录,那么这个苹果登录也需要加进去。

    9,iOS 13.0以后,苹果停止了对UIWebview的维护,将全面替换成WKWebview,app审核时会出现警告,但是可以继续使用,听说有的人因为UIWebView的问题审核被拒了,这个还有待更新。

    10,iOS13.0,Xcode11 项目中使用SJVideoPlayer三方播放器的发生崩溃问题,

    解决方案:替换三方库里面的一个.m文件

    点击SJAVMediaMainPresenter.m.zip下载。(问题及解决方案在下面的链接里面)

     https://github.com/changsanjiang/SJVideoPlayer/issues/153#issuecomment-534364750

    有其他的问题将持续更新!

  • 相关阅读:
    USACO Milk2 区间合并
    Codeforces 490B Queue【模拟】
    HDU 3974 Assign the task 简单搜索
    HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)
    Cin、Cout 加快效率方法
    POJ 1159 回文LCS滚动数组优化
    POJ 2479 不相交最大子段和
    POJ 1458 最长公共子序列 LCS
    在阿里最深刻的,还是职场之道给我的震撼
    精细化
  • 原文地址:https://www.cnblogs.com/FZP5/p/11671241.html
Copyright © 2020-2023  润新知