ios – Swift 3:在不使用UIImagePickerController的情况下从照片相机胶卷加载照片

ios – Swift 3:在不使用UIImagePickerController的情况下从照片相机胶卷加载照片,第1张

概述This question has been asked before但没有Swift 3的答案.我正在寻找过去3周我遇到的相同解决方案. 我已经完成了我的研究并观看了许多关于使用UIImagePickerController将照片/相机卷中的图像加载到应用程序中的Youtube视频,但我想在没有用户 *** 作的情况下访问这些照片. 我想从相机胶卷中读取一系列照片并将它们放在照片幻灯片中,逐一显示.如何 This question has been asked before但没有Swift 3的答案.我正在寻找过去3周我遇到的相同解决方案.

我已经完成了我的研究并观看了许多关于使用UIImagePickerController将照片/相机卷中的图像加载到应用程序中的Youtube视频,但我想在没有用户 *** 作的情况下访问这些照片.

我想从相机胶卷中读取一系列照片并将它们放在照片幻灯片中,逐一显示.如何在没有UIImagePickerController的情况下访问这些照片?

解决方法 您可以使用Photos框架从CameraRoll / Photos中获取照片.

这是Swift 3代码的版本.

导入照片框架

import Photos//Array of PHAsset type for storing photosvar images = [PHAsset]()

使用此功能可以在vIEwDIDLoad中的某个位置或在您想要获取照片的任何位置获取照片.

func getimages() {    let assets = PHAsset.fetchAssets(with: PHAssetMediaType.image,options: nil)    assets.enumerateObjects({ (object,count,stop) in       // self.cameraAssets.add(object)        self.images.append(object)    })    //In order to get latest image first,we just reverse the array    self.images.reverse()     // To show photos,I have taken a UICollectionVIEw           self.photosCollectionVIEw.reloadData()}

其余是UICollectionVIEw数据源和代理.请参阅如何显示图像的cellForItem数据源方法.

func collectionVIEw(_ collectionVIEw: UICollectionVIEw,numberOfItemsInSection section: Int) -> Int {       return images.count    }func collectionVIEw(_ collectionVIEw: UICollectionVIEw,cellForItemAt indexPath: IndexPath) -> UICollectionVIEwCell {    let cell = collectionVIEw.dequeueReusableCell(withReuseIDentifIEr: "PhotoCollectionVIEwCell",for: indexPath) as! PhotoCollectionVIEwCell    let asset = images[indexPath.row]    let manager = PHImageManager.default()    if cell.tag != 0 {            manager.cancelimageRequest(PHImageRequestID(cell.tag))        }    cell.tag = Int(manager.requestimage(for: asset,targetSize: CGSize(wIDth: 120.0,height: 120.0),contentMode: .aspectFill,options: nil) { (result,_) in                                                cell.photoImageVIEw?.image = result        })    return cell}

根据您的需要调整以下代表.

func collectionVIEw(_ collectionVIEw: UICollectionVIEw,layout collectionVIEwLayout: UICollectionVIEwLayout,sizeforItemAt indexPath: IndexPath) -> CGSize {    let wIDth = self.vIEw.frame.wIDth * 0.32    let height = self.vIEw.frame.height * 0.179910045    return CGSize(wIDth: wIDth,height: height)}func collectionVIEw(_ collectionVIEw: UICollectionVIEw,minimumlinespacingForSectionAt section: Int) -> CGfloat {    return 2.5}func collectionVIEw(_ collectionVIEw: UICollectionVIEw,insetForSectionAt section: Int) -> UIEdgeInsets {    return UIEdgeInsets(top: 5,left: 5,bottom: 5,right: 5)}func collectionVIEw(_ collectionVIEw: UICollectionVIEw,minimumInteritemSpacingForSectionAt section: Int) -> CGfloat {    return 0}

务必保持照片权限.如果单击“不允许”,则必须使用PHPhotolibrary.authorizationStatus()管理授权.

您可以阅读有关Photos框架的更多信息.

总结

以上是内存溢出为你收集整理的ios – Swift 3:在不使用UIImagePickerController的情况下从照片/相机胶卷加载照片全部内容,希望文章能够帮你解决ios – Swift 3:在不使用UIImagePickerController的情况下从照片/相机胶卷加载照片所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存