2017-06-17 12 views
0

私は20枚の画像を含む水平スクロールビューを持っています。現時点では、すべての画像を1つずつ設定し、20回の画像ビューを作成しました。この20倍のような複数の値を動的に設定する

何か:

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

この恐ろしい見えます。これをどのようにしても最適化できますか?

答えて

0

あなたは配列や写真を持っているようですが、arrayを反復してimageViewsを作成してみてください。このような何か:

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

あなたはそれに応じて画像を追加し、反復ごとにフレームを変更、forループを使用して写真を反復処理することができます:あなたの座標は何の特定のパターンに従っていない場合は

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 
} 

を、あなたはそれらを配列に入れてそれに応じて設定することができます。

しかし、イメージで何を達成しようとしているかによって、これらのイメージをリストしたり、テーブルやグリッドのような形にしたりする場合は、これらの再使用セルとしてUITableViewまたはUICollectionViewを使用することをお勧めします画面に多くの画像を追加するよりもはるかに優れたパフォーマンスを発揮します。

関連する問題