ios - Swift:将照片图像加载到应用程序中

标签 ios swift swift3 photos

我有一个应用程序,当它检测到没有用户操作时会显示屏幕保护程序。目前,它正在运行,因为屏幕保护程序的图像已预加载到应用程序中。

但最终我希望屏幕保护程序能够访问和显示照片中的图像,因为我们会将宣传图像保存到照片中,而这些图像会经常更改。

我被卡住了,不知道如何继续访问和读取照片中的图像。

请帮忙。 :(

import UIKit
import Photos

class ScreenSaverViewController: UIViewController {
    @IBOutlet weak var ssImage: UIImageView!

    var timer = Timer()
    var count = 0

    var arrayPhoto: [UIImage] = [
        UIImage(named:"0.jpg")!,
        UIImage(named:"1.jpg")!,
        UIImage(named:"2.jpg")!,
        UIImage(named:"3.jpg")!
    ]

    var images = [PHAsset]()

    func nextImage() {
         let currentIndex = arrayPhoto.index(of: ssImage.image ?? UIImage()) ?? -1

         var nextIndex = currentIndex + 1

         nextIndex = arrayPhoto.indices.contains(nextIndex) ? nextIndex : 0

         UIView.transition(with: ssImage, duration: 0.5, options: .transitionCrossDissolve, animations: { self.ssImage.image = self.arrayPhoto[nextIndex] }, completion: nil)


    }

    func scheduledTimer(){
         timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: (#selector(nextImage)), userInfo: nil, repeats: true)
         count = 1
    }

    override func viewDidLoad() {
         super.viewDidLoad()
         if count == 0 {
              ssImage.image = UIImage(named: "0.jpg")
         }
         scheduledTimer()
    }

    override func didReceiveMemoryWarning() {
         super.didReceiveMemoryWarning()
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
         timer.invalidate()
         self.dismiss(animated: true, completed: nil)
    }

}

最佳答案

您可以直接使用照片框架。我鼓励您先阅读文档:https://developer.apple.com/documentation/photos

无论如何,要获取图像,你可以这样做:

func getImages() {
    let assets = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: nil)
    assets.enumerateObjects({ (object, count, stop) in
        self.images.append(object)
    })

    //In order to get latest image first, we just reverse the array
    images.reverse() 
}

致谢:Swift 3: Load photos from Photos/Camera Roll without using UIImagePickerController

关于ios - Swift:将照片图像加载到应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48317458/

相关文章:

swift - 在 Ubuntu 18.04 中使用 LLDB 调试 Swift 5.1 时<无法解析类型>

ios - 我们如何使用 Swift 3 增加或减少 tvOS 应用程序的亮度?另外,我们如何在这里实现自定义的 sleep 定时器?

swift - Swift 3 协议(protocol)中的静态关键字

ios - 异步任务不更改外部变量。 swift 3

ios - 调用中参数 'sender' 缺少参数

ios - dispatch_semaphore_wait 阻塞了我的网络请求回调

ios - 更新SQLite数据库时,应用程序崩溃并显示断言失败消息

ios - 从另一个应用程序返回后,Alamofire(URL)请求失败,例如 : Facebook

ios - xcode出现错误时显示自定义框架的实现

Swift 3 - CollectionView 数据源未返回有效的单元格