设置视频阵列视图

时间:2019-02-12 17:39:23

标签: ios swift xcode segue

Xcode的新手。我正在尝试制作动态壁纸应用程序。我的主要项目基本上都在工作,有几个不同的视图,导航控制器等等。我终于使预览/保存viewController可以工作,并且能够将MOV文件另存为实时照片。 但是现在我的问题是将多个MOV文件链接到不同的按钮,以将哪个MOV加载到预览/保存viewController中。这就是我到目前为止所拥有的。

struct FilePaths {
static let documentsPath : AnyObject = NSSearchPathForDirectoriesInDomains(.cachesDirectory,.userDomainMask,true)[0] as AnyObject
struct VidToLive {
    static var livePath = FilePaths.documentsPath.appending("/")
}
}

class ViewController: UIViewController, 
UIImagePickerControllerDelegate, UINavigationControllerDelegate {

@IBOutlet var livePhotoView: PHLivePhotoView!
    {
    didSet {
        loadVideoWithVideoURL(Bundle.main.url(forResource: "video", withExtension: "mov")!)
    }
}

因此,我已将视图设置为具有“ video.mov”特定路径的IBOutlet,是否可以设置按钮以在该视图中加载“ video2.mov”而不必重新创建所有内容?我在做这个时的第一个念头是每个人都有大量不同的viewController和自己的MOV ...(告诉我,我是新手)...但这绝对不是答案。我正在学习,:/ ...提前谢谢。

1 个答案:

答案 0 :(得分:1)

假设您有一个视频文件名数组:

let vids = ["video", "video2", "video3"]

并假设您具有与插座集合 连接到视图控制器的相同数量的按钮:

@IBOutlet weak var videoButtons:[UIButton]!

并假定这些按钮中的每个按钮也都通过与您的视图控制器的 action 连接进行设置,以便在按下任何按钮时调用相同的方法。然后,当按下按钮时,您可以查看它是哪个 按钮,并查看它是哪个视频名称,并采取相应的行动:

@IBAction func doVideoButton(_ sender : UIButton) {
    if let index = self.videoButtons.firstIndex(of:sender) {
        let videoName = self.vids[index]
        // now you know the name, load that video and show it!
    }
}