Swipe vorwärts und rückwärts durch die Reihe von Bildern Swift
Ich habe ein array von Bildern, die ich möchte in der Lage sein, eine Bewegung nach vorwärts (nach Links), um zum nächsten Bild oder zurück (rechts), um das Vorherige Bild. Wenn Sie die imageList-trifft -1/out-of-range, die app stürzt ab. Ich habe Probleme, herauszufinden, die Logik zu halten, wie es in Reichweite ist.
Hier ist mein code:
var imageList:[String] = ["image1.jpg", "image2.jpg", "image3.jpg"]
let maxImages = 2
var imageIndex: NSInteger = 1
Die swipe-gesten sind in meinen viewDidLoad() Methode, nicht sicher, ob dies der richtige Ort ist... :
override func viewDidLoad() {
super.viewDidLoad()
//Do any additional setup after loading the view, typically from a nib.
var swipeRight = UISwipeGestureRecognizer(target: self, action: "swiped:") //put : at the end of method name
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.view.addGestureRecognizer(swipeRight)
var swipeLeft = UISwipeGestureRecognizer(target: self, action: "swiped:") //put : at the end of method name
swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
self.view.addGestureRecognizer(swipeLeft)
image.image = UIImage(named:"image1.jpg")
}
func swiped(gesture: UIGestureRecognizer) {
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
switch swipeGesture.direction {
case UISwipeGestureRecognizerDirection.Right :
println("User swiped right")
/*No clue how to make it go back to the previous image and
when it hits the last image in the array, it goes back to
the first image.. */
case UISwipeGestureRecognizerDirection.Left:
println("User swiped Left")
if imageIndex > maxImages {
imageIndex = 0
}
image.image = UIImage(named: imageList[imageIndex])
imageIndex++
default:
break //stops the code/codes nothing.
}
}
}
Vielen Dank im Voraus!
InformationsquelleAutor Lukesivi | 2015-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst Ihre Bild-index sollte auf null gesetzt werden, da array-Elemente beginnt von null, aber das ist nicht eine Quelle für dein problem
dann dein Geklautes Funktion sollte wie folgt
InformationsquelleAutor Zell B.
Können Sie so etwas wie das.
Zunächst müssen Sie eine position-Zähler, der sagt, wo Sie im Augenblick sind. Wichtig: Sie müssen die start
0
wenn Sie anfangen wollen, aus dem ersten element, da arrays zählen ab 0:Dann, wenn Sie streichen Sie vorwärts, die Sie brauchen, um zu überprüfen, ob die aktuelle swipePosition größer ist als die Menge der Bilder. Um das zu tun, können Sie die
count
- Methode von array. Aber Sie müssen subtrahieren Sie 1, da die position bei 0 beginnt. Also, wenn es ist bereits auf der höchsten oder niedrigsten position im array, die Sie nicht haben, etwas zu tun. Ansonsten ist Sie addieren oder subtrahieren einer position:InformationsquelleAutor Christian Wörz
`
ich m neu in Stapel-community...danke für die Anregung.. ich werde Lesen, wie zu beantworten
InformationsquelleAutor Dhrumil
InformationsquelleAutor BatyrCan