2017-08-03 6 views
0

J'ai vue comme suitComment afficher une sous vue de plus en plus sur une vue parent

Parent View

Les carreaux de couleur sont essentiellement vues. Quand je presse longtemps sur les vues carrelées je crée une copie de la tuile dans laquelle il a été longtemps pressé. Aussi, quand il est pressé longtemps, il devrait y avoir une vue selon l'image suivante.

enter image description here

La zone de dépôt doit venir d'une partie inférieure ou il devrait se développer à partir d'insectes bas de l'écran. Lorsque j'appuie longuement sur la vue mosaïque, je crée une copie de la vue et je suis capable de faire la copie avec succès et de la faire glisser sur l'écran, mais je suis coincé à la création de cette zone de dépôt et de son animation.

Quelqu'un peut-il me guider comment mettre en œuvre cette ....

Merci à l'avance ...

+0

vous n'êtes pas en mesure de coder la zone de dépôt? ou quel est le problème exacty? –

+0

pour implémenter la zone de dépôt pour avoir un effet croissant, vous devriez faire 3 choses dans le code d'animation, d'abord augmenter sa largeur à l'écran entier, réduire la coordonnée y pour amener la vue sur l'écran et enfin ajouter à la hauteur il couvre la zone inférieure de votre écran. – Rishabh

+0

@MohammadBashirSidani Je ne suis pas capable de générer la zone de dépôt par programmation. C'est là où je suis coincé. –

Répondre

0
let dropView = UIView(frame: CGRect(x:0, y:0, width:300, height:100)) 
    dropView.frame.origin = CGPoint(x: 0, y: self.view.frame.size.height) 
    dropView.center = CGPoint(x:self.view.frame.size.width/2, y:dropView.center.y) 
    dropView.backgroundColor = UIColor.blue 
    self.view.addSubview(dropView) 

Lorsque vous voulez animer pour montrer utiliser ceci:

UIView.animate(withDuration: 0.5, delay: 0.0, options: [.repeat, .curveEaseOut, .autoreverse], animations: { 
     dropView.frame.origin = CGPoint(x:dropView.frame.origin.x, y:dropView.frame.origin.y - dropView.frame.size.width - 10) 
    }, completion: nil)