欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

swift相冊(cè)相機(jī)的權(quán)限處理示例詳解

 更新時(shí)間:2017年10月31日 09:19:50   作者:hello老文  
在iOS7以后要打開手機(jī)攝像頭或者相冊(cè)的話都需要權(quán)限,在iOS9中更是更新了相冊(cè)相關(guān)api的調(diào)用,那么下面這篇文章主要給大家介紹了關(guān)于swift相冊(cè)相機(jī)權(quán)限處理的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下。

前言

最近在開發(fā)中遇到了獲取相冊(cè)相機(jī)權(quán)限的需求,通過查找相關(guān)的資料終于解決了,因?yàn)橹髸?huì)用到所以決定記錄下,下面話不多說了,來一起看看詳細(xì)的介紹吧。

注意:須先在info.plist中添加兩個(gè)keyNSPhotoLibraryUsageDescription, 和NSCameraUsageDescription, 內(nèi)容填提示內(nèi)容.

相機(jī)

// 使用
self.cameraPermissions(authorizedBlock: {
 print("打開相機(jī)")
}, deniedBlock: {
 print("沒有權(quán)限使用相機(jī)")
})

// 相機(jī)權(quán)限
class func cameraPermissions(authorizedBlock: OperationBlock?, deniedBlock: OperationBlock?) {
 let authStatus = AVCaptureDevice.authorizationStatus(for: AVMediaType.video)
 
 // .notDetermined .authorized .restricted .denied
 if authStatus == .notDetermined {
  // 第一次觸發(fā)授權(quán) alert
  AVCaptureDevice.requestAccess(for: .video, completionHandler: { (granted: Bool) in
   self.cameraPermissions(authorizedBlock: authorizedBlock, deniedBlock: deniedBlock)
  })
 } else if authStatus == .authorized {
  if authorizedBlock != nil {
   authorizedBlock!()
  }
 } else {
  if deniedBlock != nil {
   deniedBlock!()
  }
 }
}

相冊(cè)

iOS9.0后ALAssetsLibrary過時(shí)了, 換成使用PHPhotoLibrary

// 使用
self.photoAlbumPermissions(authorizedBlock: {
 print("打開相冊(cè)")
}, deniedBlock: {
 print("沒有權(quán)限打開相冊(cè)")
})

// 相冊(cè)權(quán)限
class func photoAlbumPermissions(authorizedBlock: OperationBlock?, deniedBlock: OperationBlock?) {
 let authStatus = PHPhotoLibrary.authorizationStatus()
 
 // .notDetermined .authorized .restricted .denied
 if authStatus == .notDetermined {
  // 第一次觸發(fā)授權(quán) alert
  PHPhotoLibrary.requestAuthorization { (status:PHAuthorizationStatus) -> Void in
   self.photoAlbumPermissions(authorizedBlock: authorizedBlock, deniedBlock: deniedBlock)
  }
 } else if authStatus == .authorized {
  if authorizedBlock != nil {
   authorizedBlock!()
  }
 } else {
  if deniedBlock != nil {
   deniedBlock!()
  }
 }
}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Swift 3中使用FMDB遇到的問題與解決方法

    Swift 3中使用FMDB遇到的問題與解決方法

    相信大家都熟悉OC使用FMDB第三方庫(kù),進(jìn)行數(shù)據(jù)庫(kù)操作,增、刪、改、查,但最近在Swift 3中使用FMDB遇到了一些問題,下面這篇文章主要給大家介紹了關(guān)于在Swift 3中使用FMDB遇到的問題與解決方法,需要的朋友可以參考下。
    2017-07-07
  • Swift中非可選的可選值類型處理方法詳解

    Swift中非可選的可選值類型處理方法詳解

    Optional是Objective-C沒有的數(shù)據(jù)類型,是蘋果引入到Swift語(yǔ)言中的全新類型,它的特點(diǎn)就和它的名字一樣:可以有值,也可以沒有值,當(dāng)它沒有值時(shí),就是nil。下面這篇文章主要給大家介紹了關(guān)于Swift中非可選的可選值類型處理方法的相關(guān)資料,需要的朋友可以參考下。
    2017-11-11
  • 如何使用Swift來實(shí)現(xiàn)一個(gè)命令行工具的方法

    如何使用Swift來實(shí)現(xiàn)一個(gè)命令行工具的方法

    這篇文章主要介紹了如何使用Swift來實(shí)現(xiàn)一個(gè)命令行工具,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Swift中定義二維數(shù)組的方法及遍歷方法示例

    Swift中定義二維數(shù)組的方法及遍歷方法示例

    這篇文章主要介紹了Swift中定義二維數(shù)組的方法及遍歷方法示例,本文直接給出代碼示例,需要的朋友可以參考下
    2015-07-07
  • SwiftUI自定義導(dǎo)航的方法實(shí)例

    SwiftUI自定義導(dǎo)航的方法實(shí)例

    導(dǎo)航是我們平時(shí)經(jīng)常會(huì)遇到的一個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于SwiftUI自定義導(dǎo)航的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 判斷?ScrollView List?是否正在滾動(dòng)詳解

    判斷?ScrollView List?是否正在滾動(dòng)詳解

    這篇文章主要為大家介紹了判斷?ScrollView、List?是否正在滾動(dòng)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Swift中類與結(jié)構(gòu)的初始化示例解析

    Swift中類與結(jié)構(gòu)的初始化示例解析

    這篇文章主要為大家介紹了Swift中類與結(jié)構(gòu)的初始化解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉(zhuǎn)移到Swift過程介紹

    Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉(zhuǎn)移到Swift過程介紹

    這篇文章主要介紹了Objective-c代碼如何移植為Swift代碼,Objective-c代碼轉(zhuǎn)移到Swift過程介紹,需要的朋友可以參考下
    2014-07-07
  • Swift中定義單例的方法實(shí)例

    Swift中定義單例的方法實(shí)例

    Swift中單例的寫法有很多種,下面這篇文章主要給大家介紹了關(guān)于Swift中定義單例的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Swift中通過疊加UILabel實(shí)現(xiàn)混合進(jìn)度條的方法

    Swift中通過疊加UILabel實(shí)現(xiàn)混合進(jìn)度條的方法

    這篇文章主要介紹了Swift中通過疊加UILabel實(shí)現(xiàn)混合進(jìn)度條的方法的相關(guān)資料,需要的朋友可以參考下
    2016-08-08

最新評(píng)論