Snapchat과 같은 앱에서 스토리 기능을 만드는 중입니다. 나는 파이어 폭스의 비디오와 그림으로 채워 넣을 배열과 이야기에 대한 기본 정보를 가지고있다. 내가 겪고있는 문제는 snapchat이하는 방식으로 어레이를 통과하는 것입니다. 내 ViewController에 배열 내용을로드 할 수 있지만 그것을 원하는 방식으로 통해 수돗물 없습니다. 첫 번째 이야기가 연주 된 후와 마찬가지로 배열의 두 번째 이야기가 다음 이야기와 함께 자동으로 재생되기를 원합니다. 그러나 사용자가보기의 오른쪽을 탭하여 다음 이야기로 건너 뛰거나 왼쪽을 탭하여 이전 이야기로 이동할 수있게하려고합니다. 또는 배열의 첫 번째 스토리 인 경우 처음부터 재생하고 싶습니다. 하지만 분명히 내 코드가 설정되는 방식이 잘못되어 내가해야 할 일을하지 않는 것입니다. 여기 내 코드가있다. 먼저 Firebase에서 데이터를 가져 와서 ViewDidAppear에서 GetStories 함수를 호출하여 배열을 채 웁니다.내 앱이 Snapchat Stories와 같은 스토리를 재생하려고합니다.
func GetTheStories() {
print("the EventID is \(self.EventID)")
self.ref = FIRDatabase.database().reference(fromURL: "https://pondu-7db05.firebaseio.com/")
let dataRef = self.ref.child("Stories")
dataRef.observe(.value, with: { snapshot in
if (snapshot.value is NSNull) {
print("not found")
} else {
for Stories in (snapshot.children) {
let snap = Stories as! FIRDataSnapshot //each child is a snapshot
let dictionary = snap.value as? [String: AnyObject] // the value is a dict
if self.EventID == dictionary?["EventID"] as! String! {
self.StoryURL = dictionary?["Story Link"] as? String!
self.UserID = dictionary?["UserID"] as? String!
self.fileArray.append(self.StoryURL)
}
}
print("the array has this info in it \(self.fileArray) , okay cool")
self.getFileType(self.fileArray[0])
}
})
}
은 그럼 파일이 이미지 또는 비디오 인 경우 (이 코드는 조금 엉망이지만 다른 질문에 대한 먹으 렴) 결정하기 위해 기능 GetFileType를 호출합니다.
func getFileType(_ thefile:String){
var indexOfUrl:[Character] = []
for i in thefile.characters {
//print(i)
indexOfUrl.append(i)
}
let letterIndex = indexOfUrl.count - 1
print("index \(letterIndex)")
let chac1 = indexOfUrl[letterIndex]
let chac2 = indexOfUrl[letterIndex - 1]
let chac3 = indexOfUrl[letterIndex - 2]
print("chac3 \(chac3)")
let fileType = "\(chac3)\(chac2)\(chac1)"
print("file type \(chac3)\(chac2)\(chac1)")
if (fileType == videoTypes[0]) || (fileType == videoTypes[1]) || (fileType == videoTypes[2]) || (fileType == videoTypes[3]) || (fileType == videoTypes[4]) {
self.isVideo(thefile)
print("file type \(fileType)")
print(thefile)
}else{
print("its a picture")
self.isImage(thefile)
// print("file type \(fileType)")
// print(thefile)
}
}
그 후 나는 아래의 코드를 사용하여 배열을 탭할 수 있습니다. 이제 이것이 내가 해결하고자하는 주요 문제입니다. 나는 이미 내가 여기서 잘못된 것을하고 있다는 것을 알고 있지만 더 좋은 해결책을 찾기 위해 프로그램을 짜는 것에 대해 충분히 알지 못한다고 생각한다.
@IBAction func Forward(_ sender: UIButton) {
getFileType(fileArray[+1])
}
@IBAction func Backward(_ sender: UIButton) {
let max = UInt32(fileArray.count)
let ran = Int(arc4random_uniform(max))
getFileType(fileArray[ran])
self.getFileType(self.fileArray[0])
}
그리고이 함수는 플레이어가 게임을 마친 후 다음 이야기로 이동하게합니다.
func playerPlaybackDidEnd(_ player: Player) {
print("play back")
getFileType(fileArray[+1])
}
안녕을했다 이걸 어떻게 만드는지 알아 냈어? 나는 "이야기"체계를 창조하는 것에 관하여 온라인으로 아무것도 찾아 내지 않으며 신속하고 firebase를 사용하여 것을 대략 창조하고있다. 알려 주시면 함께 작업하겠습니다! –
@WayneFilkins 아직 아무것도 없습니다. 하지만 내 응용 프로그램에는 여러 부분이 있으므로 방금 다른 작업을 시작했으며 나중에 저장하기로 결정했습니다. /. 하지만 이걸로 너와 일하는 걸 꺼려하지 않을거야 – Markinson
어떻게 그랬니? 나는 이것을 할 계획이지만 인터넷에서 아무것도 발견하지 못했습니다. @WayneFilkins –