2017-10-02 7 views
-3

Je viens de commencer à travailler sur Swift la semaine dernière et j'ai besoin d'une suggestion si l'approche suivante est correcte pour déposer une image partielle sur une autre image.Mettre en place une image partielle par-dessus une autre dans UIView en utilisant Swift 3

J'ai un UIView dans lequel je crée 3 images par programme. Image de flèche gauche, image mobile intermédiaire et image de flèche droite comme indiqué ci-dessous. Est-ce que je peux placer partiellement des images fléchées à 50% sur l'image mobile?

J'ai essayé:

func setupUI(){ 
    let mobileImage = UIImage(named: "mobile") 
    let arrowImage = UIImage(named: "arrow") 

    middleView = UIImageView(frame: CGRect(x: arrowImage!.size.width/2, y:0 , width:mobileImage!.size.width, height:mobileImage!.size.height)) 
    middleView.image = mobileImage 
    middleView.layer.borderWidth = 1.0 
    middleView.layer.cornerRadius = 5.0 
    self.addSubview(middleView) 

    let yForArrow = mobileImage!.size.height - arrowImage!.size.height 
    leftArrow = UIImageView(frame: CGRect(x: 0, y:yForArrow, width:arrowImage!.size.width, height:arrowImage!.size.height)) 
    leftArrow.image = arrowImage 
    self.addSubview(leftArrow) 

    let rightArrowX = mobileImage!.size.width 
    rightView = UIImageView(frame: CGRect(x: rightArrowX, y:yForArrow, width:arrowImage!.size.width, height:arrowImage!.size.height)) 
    rightView.image = arrowImage 
    self.addSubview(rightView) 
} 

* Au démarrage, il ne fonctionnait pas, comme je l'ai oublié d'ajouter setupUi() dans la méthode init. Comme indiqué dans la réponse ci-dessous.

Est-ce que la mise en place d'une trame est correcte? OU je devrais utiliser des contraintes?

Pour moi, il semble mauvaise approche que je suis coder en dur les numéros dans CGRect.

enter image description here

* Cette image est créée dans MS Paint pour montrer ce qu'il devrait regarder sur iPhone.

+2

Qu'est-ce qui ne fonctionne pas? – the4kman

+1

Si le problème est que l'image est coupée alors vous devriez probablement définir le clipToBounds de l'image à false – Eyzuky

+0

Je posterai le code complet ici. Mais pourquoi a-t-on donné 4 points à la question? J'ai un problème avec le code, c'est pourquoi ça ne marche pas. Cette image est créée dans MS Paint pour montrer à quoi elle devrait ressembler sur iPhone. – Rahul

Répondre

0

J'ai trouvé le problème que j'ai manqué d'ajouter setupUI() dans la méthode init. SetupUI ajoute par programme des images sur UIView. Comme il manquait, aucune image n'apparaissait dans le simulateur de l'iPhone. Mais je trouve qu'il est très démotivant que les gens ont voté la question.