2017-06-17 1 views
0

I ont une vue de défilement horizontal qui contient 20 images. En ce moment, j'ai réglé toutes les images une par une et créé une vue d'image 20 fois.Définition de plusieurs valeurs dynamiquement

quelque chose comme ça 20 fois:

let imageView1 = UIImageView(frame: CGRect(x: calculateWidth(), y: 0, width: 60, height: 60)) 
imageView1.image = photos[0] 
self.imageScrollView.addSubView(imageView1) 

Ce regard horrible. Puis-je optimiser cela de quelque façon que ce soit?

Répondre

0

Vous semblez avoir un tableau ou des photos, pourquoi ne pas simplement parcourir ce array et créer le imageViews. Quelque chose comme ceci:

for photo in photos { 
    let imageView = UIImageView(frame: CGRect(x: calculateWidth(), y: 0, width: 60, height: 60)) 
    imageView.image = photo 
    self.imageScrollView.addSubView(imageView) 
} 
0

Vous pouvez parcourir vos photos à l'aide d'une boucle, en ajoutant les images en conséquence et changer le cadre avec chaque itération:

var frame = CGRect(x: calculateWidth(), y: 0, width: 60, height: 60) 
for photo in photos { 
    let imageView = UIImageView(frame: frame) 
    imageView.image = photo 
    self.imageScrollView.addSubView(imageView) 

    //update frame here for the next iteration 
    frame.origin.y += 60 
} 

Si vos coordonnées ne suivent aucun modèle spécifique, vous peut les mettre dans un tableau et les définir en conséquence. Néanmoins, en fonction de ce que vous essayez d'accomplir avec les images, si vous essayez de lister ces images ou de les présenter sous forme de tableau ou de grille, je suggère d'utiliser un UITableView ou un UICollectionView comme ces cellules de réutilisation et ont de bien meilleures performances que de simplement ajouter de nombreuses images à l'écran.