美文网首页
iOS iOS13适配不完全整理

iOS iOS13适配不完全整理

作者: 沐北 | 来源:发表于2019-10-24 16:37 被阅读0次

    1.Xcode 11报错 [_LSDefaults sharedInstance]: unrecognized selector sent to class)

    更新友盟,直接更新没有反应的话可以尝试直接指定更新到2.1.1版本

    2.KVC方式来获取私有属性被限制.

    重灾区是textField

    [textField setValue:[UIColor red] forKeyPath:@"_placeholderLabel.textColor"];
    //替换为
    textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"输入"attributes:@{NSForegroundColorAttributeName: [UIColor red]}];

    波及影响到项目中使用的SearchBar的textField

    • (UITextField *)sa_GetSearchTextFiled{
      if ([[[UIDevice currentDevice]systemVersion] floatValue] >= 13.0) {
      return self.searchTextField;
      }else{
      UITextField *searchTextField = [self valueForKey:@"_searchField"];
      return searchTextField;
      }
      }

    3.深夜模式
    在开发中,使用的系统控件未设置背景色或者为透明的情况下,进入深夜模式后,控件背景色变为黑色。

    1)当短期内无法适配全部深夜模式的情况的解决办法

    配置plist文件: 在Info.plist 文件中,在plist文件里新增属性User Interface Style 数据格式为string。值设置为Light。

    if(@available(iOS 13.0,*)){
    self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
    }

    2)单个界面不遵循暗黑模式

    UIViewController与UIView 都新增一个属性 overrideUserInterfaceStyle

    将 overrideUserInterfaceStyle 设置为对应的模式,则强制限制该元素与其子元素以设置的模式进行展示,不跟随系统模式改变进行改变

    1.设置 ViewController 的该属性, 将会影响视图控制器的视图和子视2.图控制器采用该样式
    2.设置 View 的该属性, 将会影响视图及其所有子视图采用该样式
    3.设置 Window 的该属性, 将会影响窗口中的所有内容都采用样式,包括根视图控制器和在该窗口中显示内容的所有演示控制器(UIPresentationController)

    相关文章

      网友评论

          本文标题:iOS iOS13适配不完全整理

          本文链接:https://www.haomeiwen.com/subject/uvjkuctx.html