iOS 11対応

2579 ワード

1,ナビゲーションバー戻るボタンのカスタマイズ
以前は使用していました
    //      
    UIBarButtonItem  *leftBaItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"  new2.png"] style:UIBarButtonItemStylePlain target:target action:selector];
    leftBaItem.tintColor = [UIColor whiteColor];
    UIBarButtonItem *spaceButton = [[UIBarButtonItem alloc]
                                    initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                                    target:nil action:nil];
    spaceButton.width = -10;
    
    navigationItem.leftBarButtonItems = @[spaceButton,leftBaItem];

spaceButtonを設定し、幅を負に設定することでカスタム戻りボタンを実現しますが、iOS 11では無効です(==xcode 8でパッケージされたappを使用してiOS 11デバイスでこの問題はありません==)
解決策:
//      
    UIImage *backButtonImage = [[UIImage imageNamed:@"  new2.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    self.navigationController.navigationBar.backIndicatorImage = backButtonImage;
    self.navigationController.navigationBar.backIndicatorTransitionMaskImage = backButtonImage;

2,CallKit着信認識
iOS 10では、アップルが着信認識の拡張を追加し、通話を遮断したり、電話番号情報を表示したりすることができます.
iOS 10において、システムデータに電話番号情報を書き込む場合、==番号の前に国際コードを追加する必要がある======中国:86==
iOS 11の11位の携帯電話の番号は依然として識別することができて、しかし==短い番号は識別することができなくて==を、長い間考えて、いかなる資料にも挿入してこの問題を解決していないで、いっそ==86==を削除して、意外にも正常です
//       11  
    float version = [[[UIDevice currentDevice] systemVersion] floatValue];
    if (version >= 11.0) {
        if (phone.length<11){
             tempValue = [NSString stringWithFormat:@"%@" , phone] ;
        }
    }

ps:==xcode 9上でコンパイルされたappには様々な適合問題があるため、現在オンラインになっているパッケージはxcode 8でコンパイルされてパッケージ化されており、上の判断バージョンを使用する方法は、実はxcode 9にバージョンを判断する方法が追加されている==
    //    
    if (@available(iOS 11.0, *)) {
        
    }

その他:iOS 11はゴミの識別データをクリアする方法を追加しました
/**
 Remove all currently-stored identification entries.

 May only be used when `-isIncremental` returns YES, indicating that the request should provide incremental entries and thus may use this
 API to remove all previously-added identification entries.
 */
- (void)removeAllIdentificationEntries API_AVAILABLE(ios(11.0));


3,tabbar高さ
iPhone X上でtabbarの高さは83(前は49)
4,[[UIApplication sharedApplication]valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]を用いてネットワークを判断し,
iPhone Xではフラッシュバックしますが、iPhone Xのステータスバーは明らかに他のデバイスとは異なり、foregroundViewという属性がなく、方法が見つからず、フラッシュバックします
追加する必要があります...