1. 程式人生 > >iOS 11 適配筆記

iOS 11 適配筆記

一、定位許可權:

無論是iOS11還是之前的系統版本,定位許可權總共就三種:“永不”、“使用應用期間”、“始終”
之前的iOS 10的定位許可權是

Privacy - Location Always Usage Description //始終
Privacy - Location Usage Description    //允許定位
Privacy - Location When In Use Usage Description    //使用應用期間

iOS11後增加了一種定位許可權,而且要求必須使用此許可權才能使用定位服務

Privacy - Location Always and
When In Use Usage Description

當大家升級到Xcode9後,會發現設定的iOS10之前的定位許可權,在iOS11的專案上無法使用定位服務了,
為了適配iOS11的定位許可權,大家只需在工程的info.plist檔案裡新增以下許可權key value就行了

Privacy - Location When In Use Usage Description
Privacy - Location Always and When In Use Usage Description

iOS10的定位許可權
這裡寫圖片描述
iOS11的定位許可權
這裡寫圖片描述

二、跳轉到App Store:

一般我們的app跳轉到app store裡需求無外乎兩種:一種是引導使用者下載某個app;一種是引導使用者對某個app做評價。
iOS11的App Store進行了大改版,之前的跳轉到App Store裡引導使用者對app做評價的頁面在iOS10裡是一個單獨的頁面,我們也可一跳轉到這個評價頁面,但是iOS11的評價是在app詳情的首頁的,所以導致之前到跳轉到app評價頁面的URL在iOS11裡就不管用了。
解決辦法是做個判斷,iOS10之前的系統版本都跳轉到app評價頁面,iOS11跳轉到app詳情頁面。
跳轉到app store裡某個app對應的詳情頁面的URL有如下兩種:

[NSString stringWithFormat:@"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=%@&mt=8"
, kAppId] [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@", kAppId]

iOS10之前跳轉到app store裡某個app對應的評價頁面的URL如下:

[NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@&pageNumber=0&sortOrdering=2&mt=8", kAppId]

所以iOS11之後跳轉到App Store裡對app評價,可以寫成如下巨集定義:

///app store 評論URL
#define kAppStoreComment    ( (IOSVersion<=10)?[NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@&pageNumber=0&sortOrdering=2&mt=8", kAppId] : [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@", kAppId])

其中 IOSVersion 是個巨集定義

//系統版本號
#define IOSVersion          [[[UIDevice currentDevice] systemVersion] floatValue]

三、tableview的footer view問題:

在iOS10之前的系統顯示頁面如下:
這裡寫圖片描述
iOS11系統上顯示的頁面如下:
這裡寫圖片描述
之所以在iOS11上出現這樣的顯示效果是因為沒有實現

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

這個方法。這說明了在iOS10之前的系統上可能系統預設實現了
viewForFooterInSection
方法,而iOS11系統沒有預設實現,必須開發者實現,所以iOS11上一定要實現如下delegate方法:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section


- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

相關推薦

iOS 11 筆記

一、定位許可權: 無論是iOS11還是之前的系統版本,定位許可權總共就三種:“永不”、“使用應用期間”、“始終” 之前的iOS 10的定位許可權是 Privacy - Location Always Usage Description //始終 Pri

iOS 11 工具欄(UIToolbar)

con width cti ios 11 區域 rain 適配 itoo 有時 在iOS11中,ToolBar 裏面的按鈕的矩形可觸模區域非常小,緊貼著圖片,所有有時候點著沒反應 在 UIButton 創建的時候,同時加一句這樣的代碼: [[button.width

iOS 11 以及Xcode 9小Tips

定義 dst iscroll ets forms shu -c contents methods 網上適配iOS 11的文章很多,但還是有些坑不踩不知道,這裏總結一下自己在項目中適配iOS 11的遇到的問題。 UIScrollView以及子類frame整體下移問

iOS 11 UIWebView,頁面下移20的問題

tab launching eai ntb http 依然 del addition sets 方案1: AppDelegate文件 didFinishLaunchingWithOptions()中添加如下代碼 if (@available(iOS 11.0,

iOS 11:LSApplicationWorkspace無法獲取應用安裝列表解決方案

iOS11 系統更新後,私有API iOS 11 LSApplicationWorkspace無法獲取應用安裝列表,導致無法判斷某個APP是否已安裝。 解決方案: 使用私有庫 Mobi

iOS學習之iOS 11之跳轉App Store評論

iOS 11已經出來一陣子了,市面上也出了不少文章來說大家遇到的坑,我也來湊湊熱鬧。 在iOS 11之前,為了讓使用者直接跳到App Store的評論頁面,你的程式碼大概是這樣寫的: 但是今天QA給我提了個bug,說是這個已經在iOS 11上不靈了,直接提示“無法連

iOS 11之跳轉App Store評論

iOS 11已經出來一陣子了,市面上也出了不少文章來說大家遇到的坑,我也來湊湊熱鬧。 在iOS 11之前,為了讓使用者直接跳到App Store的評論頁面,你的程式碼大概是這樣寫的: 但是今天有人給我提了個bug,說是這個已經在iOS 11上不靈了,直接提示“無法連

buildroot構建項目(三)--- u-boot 2017.11 開發板修改 1

型號 mmu mman body 成功 -c 存儲器 介紹 我們   當前雖然編譯成功了,但是對於我們自己的目標板並不太適用。還得做一系列得修改。 一、lds 文件分析   u-boot 中最重要得鏈接文件即是,u-boot.lds。我們可以查看我們編譯出來得 u-boot

buildroot構建項目(四)--- u-boot 2017.11 開發板修改 2 ---- 系統啟動初始化之一

鏈接 extc 信號 分析 col clock -h 17.1 標誌位 一、代碼分析   上一節已經分析了鏈接文件,知道了首先代碼是從 _start 開始,之後設置了中斷向量表,然後從 start.s 開始運行。 _start:vectors.S (arch\arm\li

buildroot構建項目(五)--- u-boot 2017.11 開發板修改 4 ---- 系統啟動初始化之三

vid def include cmp ble soft setup.s bubuko 賦值 一、內存控制器   在關閉了MMU和caches 之後 就進入lowlevel_init 函數,對內存控制器進行初始化。lowlevel_init.S (board\samsung

buildroot構建項目(七)--- u-boot 2017.11 開發板修改 4 ---- 系統啟動初始化之四

ack tar span mov tel 變量初始化 清零 ppi ntb   設置完寄存器控制器後,則跳出cpu_init_crit,進入_main 函數。即進入crt0.S (arch\arm\lib)   跟著代碼流程慢慢走 一、crt0.S 1.1 第一步執行代碼

<iOS螢幕> iPhoneX SafeArea - 安全區域

一. 前言 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "PingFang SC"; color: #000000 } span.s1 { } span.s2 { font: 13.0px "Helvetica Neue" } 本文的出發點是對

ios 螢幕 心得

重點內容 首先 UI設計一般是按照4.7的螢幕設計。 由於 iphone 5 以上 螢幕的比例 相似。只有 4s 螢幕比例比較特殊。 要適配全部機型。我一般都是 在4s上 寫一個scrollview,將螢幕 變成與5的大小相同。接下來就簡單了 這是一個UIView的類別 這是.

iOS iPhoneX

1.導航欄高度 88 非非IPoneX手機為64 2.狀態列高度44 非IPoneX手機為20 3.tabar高度83 非IPhoneX手機為49  如下圖所示; 問題:push時tabbar向上移動導致一塊小黑螢幕 簡單描述一下,這就是一個蘋果官方開發人員的一個

iOS螢幕 iPhone X 、iPhone XR、iPhone XS 、iPhone XS Max

隨著蘋果爸爸釋出了 超牛叉的iPhone、開發者的適配工作要開始了。 停,?。 如果app 適配過 iPhone X、新機子不用怎麼適配的了。 如果你之前的適配、都是寫死的。 建議你寫活吧。萬一,蘋果爸爸釋出全面屏的iPhone呢? 先看看新手機嘛  新手機和 iPhone X相同、都是劉海屏、 適配劉海

Android螢幕筆記

2018年11月14日 17:28:37 彼岸花gg 閱讀數:6 個人分類: 安卓

iOS開發 Xcode8以及iOS10-許可權問題

現在在蘋果的官網上,我們已經可以下載到Xcode8的GM版本了,加上9.14日凌晨,蘋果正式推出iOS10系統的推送了,在此之際,iOS10的適配已經迫在眉睫啦,不知道Xcode8 beat版本,童鞋們有木有下載過來試試呢?就我的使用來說,總體覺得蘋果還是坑不斷,但是也在

iOS 字型(轉)

目前為止,iPhone螢幕尺寸已經有四種: 3.5(inch):1/3G/3GS/4/4S 4.0(inch):5/5S/5C 4.7(inch):6 5.5(inch):6Plus 看一下iPhone4~6(+)的螢幕高寬比: iPhone

iOS螢幕

最近準備學習OC,先簡單地搜尋一下螢幕適配,發現沒有特別省事的適配方法,決定按照android適配的方法簡單地寫一個適配方案。希望有人可以受到啟發,寫出一套懶人適配方案,還請記得告訴我一下,謝謝。另外,由於接觸OC不久,所以很多常識性的東西都還不懂,請見諒。

iOS螢幕的幾種方式

在iOS開發中,會經常碰到螢幕適配的問題,下面來說一下自己在專案開發中遇到的幾種螢幕適配的方式. 第一種: 利用寬高比,在不同的螢幕中來進行對控制元件的位置與控制元件的寬高進行等比例縮放.選定一個型號的螢幕的寬高為基準,進行等比例縮放.例如以iPhone6或者iPhone6