en faisant glisser les images sur l'écran à l'aide de swift
J'ai essayé cette méthode
@IBAction func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
if let view = recognizer.view {
view.center = CGPoint(x:view.center.x + translation.x,
y:view.center.y + translation.y)
}
recognizer.setTranslation(CGPointZero, inView: self.view)
}
Il fonctionne mais le problème est que lorsque j'utilise cette méthode sur plusieurs images à créer certains problèmes, par exemple,
quand faites glisser une image et de modifier sa position, mais quand j'ai cliquer et faire glisser la deuxième image . Ma première image de revenir à la position initiale.
Voici les images que j'obtiens à partir d'un rouleau de vue:
Lorsque je clique sur la deuxième image de la 1ère image aussi aller à la position d'origine
Je suis de glisser-déposer une image de son bien ici
Vous devez vous connecter pour publier un commentaire.
Mise en page automatique est en cours d'exécution un mettre vos images à l'endroit où les contraintes de leur dire qu'ils devraient être.
La façon la plus simple de contourner ce problème est de créer des images dans le code au lieu de les créer dans la table de montage séquentiel.
Quelque chose comme:
@IBOutlet
à l'affichage du contenu du défilement en vue de rendre plus facile d'ajouter des éléments.@IBOutlet weak var contentView: UIView!
et un crochet à l'affichage du contenu de votre barre de défilement de la vue. Ajoutez ensuite l'ampoule comme ceci:contentView.addSubview(lightBulb)
.addSubview
appel doit être selon la vue que vous souhaitez afficher les images. J'ai mal compris et pensé que vous souhaitez afficher sur la scrollView.self.view.addSubview(lightBulb)
à la place.panHandler
routine. Il semble que vous manque larecognizer.setTranslation(CGPointZero, inView: self.view)
partie.