iOS13适配

作者: he15his | 来源:发表于2019-06-19 11:16 被阅读1802次

    私有KVC

    iOS不允许valueForKeysetValue: forKey获取和设置私有属性,需要使用其它方式修改

    如:

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

    UISearchBar显示问题

    TextField

    升级到iOS13,UISearchController上的SearchBar显示异常,查看后发现对应的高度只有1px,目前没找到具体导致的原因,解决办法是使用KVO监听frame值变化后设置去应该显示的高度

    黑线处理crash

    之前为了处理搜索框的黑线问题会遍历后删除UISearchBarBackground,在iOS13会导致UI渲染失败crash;解决办法是设置UISearchBarBackground的layer.contents为nil

    public func clearBlackLine() {
            for view in self.subviews.last!.subviews {
                if view.isKind(of: NSClassFromString("UISearchBarBackground")!) {
                    view.backgroundColor = UIColor.white
                    view.layer.contents = nil
                    break
                }
            }
        }
    

    TabBar红点偏移

    如果之前有通过TabBar上图片位置来设置红点位置,在iOS13上会发现显示位置都在最左边去了。遍历UITabBarButtonsubViews发现只有在TabBar选中状态下才能取到UITabBarSwappableImageView,解决办法是修改为通过UITabBarButton的位置来设置红点的frame

    相关文章

      网友评论

        本文标题:iOS13适配

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