适配iOS 13

2020-03-03  本文已影响0人  Arthur澪

Tabbar

-

问题:选中的tabbar item的title。当你push到一个vc,然后pop回去之后,tabbar就会出现系统按钮的蓝色文字。

// 选中颜色
self.tabBar.tintColor = seleledColor;

通过 KVC 的方式访问私有属性

UISearchBar的输入框

UITextField *searchField;
if (@available(iOS 13.0, *)) {
     searchField = [_searchBar valueForKey:@"_searchTextField"];
}else{
      searchField = [_searchBar valueForKey:@"_searchField"];
}

UITextField的Placeholder的颜色和字体

[_textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
[_textField setValue:[UIFont systemFontOfSize:14] forKeyPath:@"_placeholderLabel.font"];

改成

_textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"姓名" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSForegroundColorAttributeName:[UIColor redColor]}];

友盟远程推送

获取deviceToken时需要处理才能得到。

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    
    if (![deviceToken isKindOfClass:[NSData class]]) return; 
    
    if (@available(iOS 13.0, *)){
        //  #include <arpa/inet.h>     //   先导入

        const unsigned *tokenBytes = (const unsigned *)[deviceToken bytes];
        NSString *hexToken = [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])];
        
        PDLog(@"deviceToken:%@",hexToken);
    }else{
        
        NSString *devtkstr = [[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]
                               stringByReplacingOccurrencesOfString: @">" withString: @""]
                              stringByReplacingOccurrencesOfString: @" " withString: @""];
         
        PDLog(@" dev tok===> %@\n===>\n",devtkstr);
    }
}

友盟SDK

升级版本pod 'UMCCommon' , '~> 2.1.1'

模态弹出presentViewController

设置

vc.modalPresentationStyle = UIModalPresentationFullScreen;

黑夜模式

不需要的话,可关闭暗黑模式。在info.plist中设置


-

或者使用代码:
self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
强制浅色模式是最快解决方式,尽量不要去info.plist去加Key,容易被拒。

苹果登录

如果 APP 支持三方登陆(Facbook、Google、微信、QQ、支付宝等),就必须支持苹果登陆,且要放前边。

上一篇下一篇

猜你喜欢

热点阅读