SlideShare a Scribd company logo
iOS Swift 3.0 初體驗
& 玩 FaceBook SDK
學習主題
• 社群成立目的簡介
• 自我介紹與哈啦
• 功力複習
• 程式實作(Swift)
• 問題與交流
個人簡介
諸葛魔斌
工作室:諸葛魔斌科技創作室
學歷:高應大---工管系(非資訊科系)
E-Mail:chugermobin@gmail.com
官方網站:http://twcts.com
Facebook:https://goo.gl/volM7Z
粉絲團 :https://goo.gl/LI08wh
社群 :https://goo.gl/kjCsz1
Line (id) :http://goo.gl/ayGW7d
Line@ :http://goo.gl/pQHjWH
Line Bot :http://goo.gl/ljdxfV
Play商店:http://goo.gl/CkVdsd
App Store:http://apple.co/1Qehd64
專長:VB(VBA)、C#、Java(Android)、Swift(iOS)、PHP、Python、Conrona、
Golang、Unity、MySQL、FreeBSD、Server架設、CAD 、 ……
楊政斌
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
iOS 10 隱私權限設置
iOS 10 對隱私權限更加嚴格,解決辦法都是在info.plist文件添加對應的Key-Value就可以了。
麥克風權限:Privacy - Microphone Usage Description 是否允許此App使用你的麥克風?
相機權限: Privacy - Camera Usage Description 是否允許此App使用你的相機?
相冊權限: Privacy - Photo Library Usage Description 是否允許此App訪問你的媒體資料庫?通
訊錄權限: Privacy - Contacts Usage Description 是否允許此App訪問你的通訊錄?
藍牙權限:Privacy - Bluetooth Peripheral Usage Description 是否許允此App使用藍牙?
語音轉文字權限:Privacy - Speech Recognition Usage Description 是否允許此App使用語音識
別?
日曆權限:Privacy - Calendars Usage Description 是否允許此App使用日曆?
定位權限:Privacy - Location When In Use Usage Description 我們需要通過您的地理位置信息
獲取您周邊的相關數據
定位權限: Privacy - Location Always Usage Description 我們需要通過您的地理位置信息獲取您
周邊的相關數據,定位的需要這麼寫,防止上架被拒
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
UICollectionView 性能優化隨著開發者對UICollectionView的信賴,項目中用的地方也比較多,但是還是存在一
些問題,比如有時會卡頓、加載慢等。所以iOS 10 對UICollectionView進一步的優化。
UICollectionView cell pre-fetching預加載機制
UICollectionView and UITableView prefetchDataSource 新增的API 針對self-sizing cells 的改進
Interactive reordering
在iOS 10 之前,UICollectionView上面如果有大量cell,當用戶活動很快的時候,整個UICollectionView的卡頓會很
明顯,為什麼會造成這樣的問題,這裡涉及到了iOS 系統的重用機制,當cell準備加載進螢幕的時候,整個cell都已經加
載完成,等待在螢幕外面了,也就是整整一行cell都已經加載完畢,這就是造成卡頓的主要原因,專業術語叫做:掉幀.
要想讓用戶感覺不到卡頓,我們的app必須幀率達到60幀/秒,也就是說每幀16毫秒要刷新一次.
iOS 10 之前UICollectionViewCell的生命周期是這樣的:
1.用戶滑動螢幕,螢幕外有一個cell準備加載進來,把cell從reusr隊列拿出來,然後調用prepareForReuse方法,在這
個方法裡面,可以重置cell的狀態,加載新的數據;
2.繼續滑動,就會調用cellForItemAtIndexPath方法,在這個方法裡面給cell賦值模型,然後返回給系統;
3.當cell馬上進去螢幕的時候,就會調用willDisplayCell方法,在這個方法裡面我們還可以修改cell,為進入螢幕做最
後的準備工作;
4.執行完willDisplayCell方法後,cell就進去螢幕了.當cell完全離開螢幕以後,會調用didEndDisplayingCell方法.
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
iOS 10 UICollectionViewCell的生命周期是這樣的:
1.用戶滑動螢幕,螢幕外有一個cell準備加載進來,把cell從reusr隊列拿出來,然後調用
prepareForReuse方法,在這裡當cell還沒有進去螢幕的時候,就已經提前調用這個方法了,對比之前的
區別是之前是cell的上邊緣馬上進去螢幕的時候就會調用該方法,而iOS 10 提前到cell還在螢幕外面的
時候就調用;
2.在cellForItemAtIndexPath中創建cell,填充數據,刷新狀態等操作,相比於之前也提前了;
3.用戶繼續滑動的話,當cell馬上就需要顯示的時候我們再調用willDisplayCell方法,原則就是:何時需
要顯示,何時再去調用willDisplayCell方法;
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
4.當cell完全離開螢幕以後,會調用didEndDisplayingCell方法,跟之前一樣,cell會進入重用隊列.
在iOS 10 之前,cell只能從重用隊列裡面取出,再走一遍生命周期,並調用cellForItemAtIndexPath創建
或者生成一個cell.
在iOS 10 中,系統會cell保存一段時間,也就是說當用戶把cell滑出螢幕以後,如果又滑動回來,cell不用
再走一遍生命周期了,只需要調用willDisplayCell方法就可以重新出現在螢幕中了.
iOS 10 中,系統是一個一個加載cell的,二以前是一行一行加載的,這樣就可以提升很多性能;
iOS 10 新增加的Pre-Fetching預加載
這個是為了降低UICollectionViewCell在加載的時候所花費的時間,在 iOS 10 中,除了數據源協議和代
理協議外,新增加了一個UICollectionViewDataSourcePrefetching協議,這個協議裡面定義了兩個方
法:
- (void)collectionView:(UICollectionView *)collectionView
prefetchItemsAtIndexPaths:(NSArray<NSIndexPath *>
*)indexPaths NS_AVAILABLE_IOS(10_0);
- (void)collectionView:(UICollectionView *)collectionView
cancelPrefetchingForItemsAtIndexPaths:(NSArray<NSIndexPath *>
*)indexPaths NS_AVAILABLE_IOS(10_0);
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
https的問題
iOS 9中默認非HTTS的網絡是被禁止的,當然我們也可以把NSAllowsArbitraryLoads設置為
YES禁用ATS。不過iOS 10從2017年1月1日起蘋果不允許我們通過這個方法跳過ATS,也就是說
強制我們用HTTPS,如果不這樣的話提交App可能會被拒絕。但是我們可以通過
NSExceptionDomains來針對特定的域名開放HTTP可以容易通過審核。
Swif3.0 新增作用域訪問級別 fileprivate目前有如下訪問級別:
公開(public)
內部(internal)
文件外私有(fileprivate)
私有(private)
Alamofire經過測試,Alamofire的4.0.0版本僅支持iOS9+和Swift3.0.x,如果想使用Swift2.3開
發的同學可以安裝Alamofire的3.5.0版本,設置所有的Use Legacy Swift Language Version為
Yes。
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
Swift 3 語法的變動
http://www.appcoda.com.tw/swift3-changes/
http://www.gegugu.com/2016/07/14/16450.html
https://read01.com/4moRGQ.html
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
FaceBook SDK:
1. 申請 FaceBook 開發者帳號
https://developers.facebook.com/
2. 建立應用程式
3. 建立 Xcode 專案
4. 下載 FaceBook SDK
5. 設定 Info.plist
6. FaceBook 應用程式 Bundle Identifier
7. 完成 Xcode 專案
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
申請 FaceBook 開發者帳號 https://developers.facebook.com/
確認原個人帳號註冊轉為開發人員帳號
c
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
建立應用程式
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
c
填入應用程式名稱
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
c
c
填入顯示名稱、電子郵件,選擇類別
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
FaceBook SDK
安裝設定步驟
下載 FaceBook SDK,並解壓縮
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
記住應用程式編號
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
選擇「是」
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
開啟終端機,進到專案資料夾
執行 pod init,建立 Podfile 文件
編輯 Podfile 文件
將連結設定檔拉(複製)
到專案底下
編輯Info.plist
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
貼上 FaceBook 提供之 Info.plist 內容,
貼於 </dict> 上方
並修改填入專案 ID 和 顯示名稱
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
確認是否帶入
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
確認 Framework 路徑
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
設定 Facebook 連結
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
設定 Facebook 連結
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
放置 Button
cc
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
放置 Button
cc
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
選用 Facebook Button
FaceBook 登入連結
cc
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
載入 FaceBook 帳號資料
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

More Related Content

PPTX
Android &amp; fire base 玩上雲端囉
政斌 楊
 
PPTX
iOS Swift & FireBase 玩上雲端囉
政斌 楊
 
PPTX
Android studio 之 fcm 推播服務
政斌 楊
 
PPTX
Android app 入門第一步
政斌 楊
 
PPTX
I os swift 之 fcm 推播服務
政斌 楊
 
PPTX
Android studio 接力使力之玩 open data
政斌 楊
 
PPTX
程式設計首日封
政斌 楊
 
PPSX
Flying on the Cloud: Designing and Architecting Cloud Application on Windows ...
Jeff Chu
 
Android &amp; fire base 玩上雲端囉
政斌 楊
 
iOS Swift & FireBase 玩上雲端囉
政斌 楊
 
Android studio 之 fcm 推播服務
政斌 楊
 
Android app 入門第一步
政斌 楊
 
I os swift 之 fcm 推播服務
政斌 楊
 
Android studio 接力使力之玩 open data
政斌 楊
 
程式設計首日封
政斌 楊
 
Flying on the Cloud: Designing and Architecting Cloud Application on Windows ...
Jeff Chu
 

Viewers also liked (20)

PPTX
iOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
Ming-Sian Lin
 
PPTX
CocoaPods 使用教學
ShengWen Chiou
 
PPTX
SWIFT 3
Chuong Huynh
 
PPTX
Swift Bengaluru Meetup slides
Pushkar Kulkarni
 
PDF
Korhan bircan
Korhan Bircan
 
PDF
Useful Tools for Making Video Games - XNA (2008)
Korhan Bircan
 
PDF
Swift - the future of iOS app development
openak
 
PDF
The Swift Programming Language with iOS App
Mindfire Solutions
 
PDF
iOSMumbai Meetup Keynote
Glimpse Analytics
 
PPTX
Medidata Customer Only Event - Global Symposium Highlights
Donna Locke
 
PDF
Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Dennis Sweitzer
 
PPTX
ios_summit_2016_korhan
Korhan Bircan
 
PDF
Medidata AMUG Meeting / Presentation 2013
Brock Heinz
 
PDF
Tools, Frameworks, & Swift for iOS
Teri Grossheim
 
PDF
What's new in Swift 3
Marcio Klepacz
 
PDF
Improving apps with iOS 10 notifications (do iOS 2016)
Donny Wals
 
PPTX
WWDC 2016
PiXeL16
 
PDF
Medidata Rave Coder
Nikolay Rusev
 
PPTX
Beginning iOS Development with Swift
TurnToTech
 
PDF
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
Jonathan Engelsma
 
iOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
Ming-Sian Lin
 
CocoaPods 使用教學
ShengWen Chiou
 
SWIFT 3
Chuong Huynh
 
Swift Bengaluru Meetup slides
Pushkar Kulkarni
 
Korhan bircan
Korhan Bircan
 
Useful Tools for Making Video Games - XNA (2008)
Korhan Bircan
 
Swift - the future of iOS app development
openak
 
The Swift Programming Language with iOS App
Mindfire Solutions
 
iOSMumbai Meetup Keynote
Glimpse Analytics
 
Medidata Customer Only Event - Global Symposium Highlights
Donna Locke
 
Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Dennis Sweitzer
 
ios_summit_2016_korhan
Korhan Bircan
 
Medidata AMUG Meeting / Presentation 2013
Brock Heinz
 
Tools, Frameworks, & Swift for iOS
Teri Grossheim
 
What's new in Swift 3
Marcio Klepacz
 
Improving apps with iOS 10 notifications (do iOS 2016)
Donny Wals
 
WWDC 2016
PiXeL16
 
Medidata Rave Coder
Nikolay Rusev
 
Beginning iOS Development with Swift
TurnToTech
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
Jonathan Engelsma
 
Ad

More from 政斌 楊 (16)

PPTX
iOS swift 玩 soket 聊天通訊程式
政斌 楊
 
PPTX
iOS Swift & OCR 玩文字辨識
政斌 楊
 
PPTX
深入學習 iBeacon 之 iOS swift 程式設計
政斌 楊
 
PPTX
Android Studio & Cloud Vision API 玩圖像辨識
政斌 楊
 
PPTX
iOS swift & Cloud Vision API 玩圖像辨識
政斌 楊
 
PPTX
Android studio 之 i beacon 藍芽應用開發學習
政斌 楊
 
PPTX
Python vs json 玩open data
政斌 楊
 
PPTX
iOS swift 之 iBeacon 藍芽應用開發學習
政斌 楊
 
PPTX
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
政斌 楊
 
PPTX
Golang 入門初體驗
政斌 楊
 
PPTX
Android studio 2.2 初體驗 &amp; 玩 face book sdk
政斌 楊
 
PPTX
Python 入門初體驗
政斌 楊
 
TXT
Python 入門初體驗(程式語法)
政斌 楊
 
PPTX
iOS swift 接力使力之玩 open data
政斌 楊
 
PPTX
再接再勵學 Swift 程式設計
政斌 楊
 
PPTX
程式設計初體驗
政斌 楊
 
iOS swift 玩 soket 聊天通訊程式
政斌 楊
 
iOS Swift & OCR 玩文字辨識
政斌 楊
 
深入學習 iBeacon 之 iOS swift 程式設計
政斌 楊
 
Android Studio & Cloud Vision API 玩圖像辨識
政斌 楊
 
iOS swift & Cloud Vision API 玩圖像辨識
政斌 楊
 
Android studio 之 i beacon 藍芽應用開發學習
政斌 楊
 
Python vs json 玩open data
政斌 楊
 
iOS swift 之 iBeacon 藍芽應用開發學習
政斌 楊
 
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
政斌 楊
 
Golang 入門初體驗
政斌 楊
 
Android studio 2.2 初體驗 &amp; 玩 face book sdk
政斌 楊
 
Python 入門初體驗
政斌 楊
 
Python 入門初體驗(程式語法)
政斌 楊
 
iOS swift 接力使力之玩 open data
政斌 楊
 
再接再勵學 Swift 程式設計
政斌 楊
 
程式設計初體驗
政斌 楊
 
Ad

Recently uploaded (20)

PPTX
新西兰学位证书,奥塔哥大学毕业证学历认证Otago毕业证加急购买
yw0wm7grzexpu69wx
 
PPTX
英国学位证书,拉夫堡大学毕业证学历认证LU毕业证买
3of9
 
PPTX
一比一制作圣文森山大学毕业证MSVU毕业证学校版本
hiusii
 
PPTX
活佛師尊: 「半部論語治天下, 移風易俗百孝經。」 鍾離大仙云: 「百孝經舉,孝傳塵世, 經歷千載不磨。」百孝經聖訓輯要第九.pptx
ray387615
 
PPTX
英国学位证书,爱丁堡大学毕业证学历认证Edin毕业证加急办理
3of9
 
PPTX
一比一制作查尔斯达尔文大学毕业证CDU毕业证学校版本
aty55mpph
 
PPTX
一比一制作多伦多大学毕业证U of T毕业证学校版本
powfif
 
PPTX
26每每风雨过后,特别是下雨过后,人们会感到较明显的降温。故有:“一场秋雨(风)一场寒”之说。
g4jp77xf2
 
PPTX
一比一制作渥太华大学毕业证UO毕业证学校版本
powfif
 
PPTX
一比一制作莫纳什大学毕业证Monash毕业证学校版本
4vrmnd7m
 
PPTX
一比一制作南卫理公会大学毕业证SSMU毕业证学校版本
g4jp77xf2
 
PPTX
一比一制作克拉克大学毕业证Clark U毕业证学校版本
tenqxr2ky
 
PPTX
一比一制作堪萨斯大学毕业证UKansas毕业证学校版本
tenqxr2ky
 
PPTX
一比一制作北卡罗来纳州立大学毕业证NCSU毕业证学校版本
tenqxr2ky
 
PPTX
一比一制作南十字星大学毕业证Southern Cross毕业证学校版本
4vrmnd7m
 
PDF
想提升黑客改分技术?来互兆团队实战演练吧!专业指导,实战操作,让你快速掌握改分技巧,成为黑客界的佼佼者。【微信:VIPhuzhao】
【微信:VIPhuzhao】揭秘黑客如何利用漏洞篡改成绩数据黑客助力修改雅思考试成绩,快速提升你的语言能力 . 黑客助力帮你改考试成绩数据,黑客接单改分数,黑客改数据库成绩
 
PPTX
class deco words for every class PAK 21.pptx
huiyentan1
 
PPTX
一比一制作密西西比大学毕业证Ole Miss毕业证学校版本
g4jp77xf2
 
PPTX
新西兰学位证书,梅西大学毕业证学历认证Massey毕业证加急办理
jokarkasm45si11r8nrr
 
PPTX
一比一制作里贾纳大学毕业证U of R毕业证学校版本
nulwod
 
新西兰学位证书,奥塔哥大学毕业证学历认证Otago毕业证加急购买
yw0wm7grzexpu69wx
 
英国学位证书,拉夫堡大学毕业证学历认证LU毕业证买
3of9
 
一比一制作圣文森山大学毕业证MSVU毕业证学校版本
hiusii
 
活佛師尊: 「半部論語治天下, 移風易俗百孝經。」 鍾離大仙云: 「百孝經舉,孝傳塵世, 經歷千載不磨。」百孝經聖訓輯要第九.pptx
ray387615
 
英国学位证书,爱丁堡大学毕业证学历认证Edin毕业证加急办理
3of9
 
一比一制作查尔斯达尔文大学毕业证CDU毕业证学校版本
aty55mpph
 
一比一制作多伦多大学毕业证U of T毕业证学校版本
powfif
 
26每每风雨过后,特别是下雨过后,人们会感到较明显的降温。故有:“一场秋雨(风)一场寒”之说。
g4jp77xf2
 
一比一制作渥太华大学毕业证UO毕业证学校版本
powfif
 
一比一制作莫纳什大学毕业证Monash毕业证学校版本
4vrmnd7m
 
一比一制作南卫理公会大学毕业证SSMU毕业证学校版本
g4jp77xf2
 
一比一制作克拉克大学毕业证Clark U毕业证学校版本
tenqxr2ky
 
一比一制作堪萨斯大学毕业证UKansas毕业证学校版本
tenqxr2ky
 
一比一制作北卡罗来纳州立大学毕业证NCSU毕业证学校版本
tenqxr2ky
 
一比一制作南十字星大学毕业证Southern Cross毕业证学校版本
4vrmnd7m
 
想提升黑客改分技术?来互兆团队实战演练吧!专业指导,实战操作,让你快速掌握改分技巧,成为黑客界的佼佼者。【微信:VIPhuzhao】
【微信:VIPhuzhao】揭秘黑客如何利用漏洞篡改成绩数据黑客助力修改雅思考试成绩,快速提升你的语言能力 . 黑客助力帮你改考试成绩数据,黑客接单改分数,黑客改数据库成绩
 
class deco words for every class PAK 21.pptx
huiyentan1
 
一比一制作密西西比大学毕业证Ole Miss毕业证学校版本
g4jp77xf2
 
新西兰学位证书,梅西大学毕业证学历认证Massey毕业证加急办理
jokarkasm45si11r8nrr
 
一比一制作里贾纳大学毕业证U of R毕业证学校版本
nulwod
 

I os swift 3.0 初體驗 &amp; 玩 facebook sdk

  • 1. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
  • 2. 學習主題 • 社群成立目的簡介 • 自我介紹與哈啦 • 功力複習 • 程式實作(Swift) • 問題與交流
  • 3. 個人簡介 諸葛魔斌 工作室:諸葛魔斌科技創作室 學歷:高應大---工管系(非資訊科系) E-Mail:[email protected] 官方網站:http://twcts.com Facebook:https://goo.gl/volM7Z 粉絲團 :https://goo.gl/LI08wh 社群 :https://goo.gl/kjCsz1 Line (id) :http://goo.gl/ayGW7d Line@ :http://goo.gl/pQHjWH Line Bot :http://goo.gl/ljdxfV Play商店:http://goo.gl/CkVdsd App Store:http://apple.co/1Qehd64 專長:VB(VBA)、C#、Java(Android)、Swift(iOS)、PHP、Python、Conrona、 Golang、Unity、MySQL、FreeBSD、Server架設、CAD 、 …… 楊政斌
  • 4. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK Xcode 8 & Swift 3 改版注意事項 iOS 10 隱私權限設置 iOS 10 對隱私權限更加嚴格,解決辦法都是在info.plist文件添加對應的Key-Value就可以了。 麥克風權限:Privacy - Microphone Usage Description 是否允許此App使用你的麥克風? 相機權限: Privacy - Camera Usage Description 是否允許此App使用你的相機? 相冊權限: Privacy - Photo Library Usage Description 是否允許此App訪問你的媒體資料庫?通 訊錄權限: Privacy - Contacts Usage Description 是否允許此App訪問你的通訊錄? 藍牙權限:Privacy - Bluetooth Peripheral Usage Description 是否許允此App使用藍牙? 語音轉文字權限:Privacy - Speech Recognition Usage Description 是否允許此App使用語音識 別? 日曆權限:Privacy - Calendars Usage Description 是否允許此App使用日曆? 定位權限:Privacy - Location When In Use Usage Description 我們需要通過您的地理位置信息 獲取您周邊的相關數據 定位權限: Privacy - Location Always Usage Description 我們需要通過您的地理位置信息獲取您 周邊的相關數據,定位的需要這麼寫,防止上架被拒
  • 5. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK Xcode 8 & Swift 3 改版注意事項 UICollectionView 性能優化隨著開發者對UICollectionView的信賴,項目中用的地方也比較多,但是還是存在一 些問題,比如有時會卡頓、加載慢等。所以iOS 10 對UICollectionView進一步的優化。 UICollectionView cell pre-fetching預加載機制 UICollectionView and UITableView prefetchDataSource 新增的API 針對self-sizing cells 的改進 Interactive reordering 在iOS 10 之前,UICollectionView上面如果有大量cell,當用戶活動很快的時候,整個UICollectionView的卡頓會很 明顯,為什麼會造成這樣的問題,這裡涉及到了iOS 系統的重用機制,當cell準備加載進螢幕的時候,整個cell都已經加 載完成,等待在螢幕外面了,也就是整整一行cell都已經加載完畢,這就是造成卡頓的主要原因,專業術語叫做:掉幀. 要想讓用戶感覺不到卡頓,我們的app必須幀率達到60幀/秒,也就是說每幀16毫秒要刷新一次. iOS 10 之前UICollectionViewCell的生命周期是這樣的: 1.用戶滑動螢幕,螢幕外有一個cell準備加載進來,把cell從reusr隊列拿出來,然後調用prepareForReuse方法,在這 個方法裡面,可以重置cell的狀態,加載新的數據; 2.繼續滑動,就會調用cellForItemAtIndexPath方法,在這個方法裡面給cell賦值模型,然後返回給系統; 3.當cell馬上進去螢幕的時候,就會調用willDisplayCell方法,在這個方法裡面我們還可以修改cell,為進入螢幕做最 後的準備工作; 4.執行完willDisplayCell方法後,cell就進去螢幕了.當cell完全離開螢幕以後,會調用didEndDisplayingCell方法.
  • 6. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK Xcode 8 & Swift 3 改版注意事項 iOS 10 UICollectionViewCell的生命周期是這樣的: 1.用戶滑動螢幕,螢幕外有一個cell準備加載進來,把cell從reusr隊列拿出來,然後調用 prepareForReuse方法,在這裡當cell還沒有進去螢幕的時候,就已經提前調用這個方法了,對比之前的 區別是之前是cell的上邊緣馬上進去螢幕的時候就會調用該方法,而iOS 10 提前到cell還在螢幕外面的 時候就調用; 2.在cellForItemAtIndexPath中創建cell,填充數據,刷新狀態等操作,相比於之前也提前了; 3.用戶繼續滑動的話,當cell馬上就需要顯示的時候我們再調用willDisplayCell方法,原則就是:何時需 要顯示,何時再去調用willDisplayCell方法;
  • 7. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK Xcode 8 & Swift 3 改版注意事項 4.當cell完全離開螢幕以後,會調用didEndDisplayingCell方法,跟之前一樣,cell會進入重用隊列. 在iOS 10 之前,cell只能從重用隊列裡面取出,再走一遍生命周期,並調用cellForItemAtIndexPath創建 或者生成一個cell. 在iOS 10 中,系統會cell保存一段時間,也就是說當用戶把cell滑出螢幕以後,如果又滑動回來,cell不用 再走一遍生命周期了,只需要調用willDisplayCell方法就可以重新出現在螢幕中了. iOS 10 中,系統是一個一個加載cell的,二以前是一行一行加載的,這樣就可以提升很多性能; iOS 10 新增加的Pre-Fetching預加載 這個是為了降低UICollectionViewCell在加載的時候所花費的時間,在 iOS 10 中,除了數據源協議和代 理協議外,新增加了一個UICollectionViewDataSourcePrefetching協議,這個協議裡面定義了兩個方 法: - (void)collectionView:(UICollectionView *)collectionView prefetchItemsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths NS_AVAILABLE_IOS(10_0); - (void)collectionView:(UICollectionView *)collectionView cancelPrefetchingForItemsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths NS_AVAILABLE_IOS(10_0);
  • 8. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK Xcode 8 & Swift 3 改版注意事項 https的問題 iOS 9中默認非HTTS的網絡是被禁止的,當然我們也可以把NSAllowsArbitraryLoads設置為 YES禁用ATS。不過iOS 10從2017年1月1日起蘋果不允許我們通過這個方法跳過ATS,也就是說 強制我們用HTTPS,如果不這樣的話提交App可能會被拒絕。但是我們可以通過 NSExceptionDomains來針對特定的域名開放HTTP可以容易通過審核。 Swif3.0 新增作用域訪問級別 fileprivate目前有如下訪問級別: 公開(public) 內部(internal) 文件外私有(fileprivate) 私有(private) Alamofire經過測試,Alamofire的4.0.0版本僅支持iOS9+和Swift3.0.x,如果想使用Swift2.3開 發的同學可以安裝Alamofire的3.5.0版本,設置所有的Use Legacy Swift Language Version為 Yes。
  • 9. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK Xcode 8 & Swift 3 改版注意事項 Swift 3 語法的變動 http://www.appcoda.com.tw/swift3-changes/ http://www.gegugu.com/2016/07/14/16450.html https://read01.com/4moRGQ.html
  • 10. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK FaceBook SDK: 1. 申請 FaceBook 開發者帳號 https://developers.facebook.com/ 2. 建立應用程式 3. 建立 Xcode 專案 4. 下載 FaceBook SDK 5. 設定 Info.plist 6. FaceBook 應用程式 Bundle Identifier 7. 完成 Xcode 專案
  • 11. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 申請 FaceBook 開發者帳號 https://developers.facebook.com/ 確認原個人帳號註冊轉為開發人員帳號 c
  • 12. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 建立應用程式
  • 13. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK c 填入應用程式名稱
  • 14. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK c c 填入顯示名稱、電子郵件,選擇類別
  • 15. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK FaceBook SDK 安裝設定步驟 下載 FaceBook SDK,並解壓縮
  • 16. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 記住應用程式編號
  • 17. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 選擇「是」
  • 18. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 開啟終端機,進到專案資料夾 執行 pod init,建立 Podfile 文件 編輯 Podfile 文件 將連結設定檔拉(複製) 到專案底下 編輯Info.plist
  • 19. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 貼上 FaceBook 提供之 Info.plist 內容, 貼於 </dict> 上方 並修改填入專案 ID 和 顯示名稱
  • 20. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 確認是否帶入
  • 21. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 確認 Framework 路徑
  • 22. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 設定 Facebook 連結
  • 23. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 設定 Facebook 連結
  • 24. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 放置 Button cc
  • 25. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 放置 Button cc
  • 26. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 選用 Facebook Button FaceBook 登入連結 cc
  • 27. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 載入 FaceBook 帳號資料
  • 28. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK