2017-10-11 75 views
-1

我努力讓所有的優惠券(UIImage)出現。例如,我有3張優惠券,當我運行我的代碼時,它會一直顯示第3張優惠券的圖片。它怎麼沒有顯示第一個2?提前致謝。如何以編程方式添加多個UIImageView?

override func viewDidLoad() { 
    var i: Int = 0 
    super.viewDidLoad() 
    self.view.backgroundColor = UIColor.white 

    CouponsViewController.PopulateDataCoupons() 

    i=0 
    repeat { 
      let imageName = MyCoupons.siteCoupons[i]//"Coupons1.jpg" 
      let image = UIImage(named: imageName!) 
      let imageView = UIImageView(image: image!) 
      imageView.frame = CGRect(x: 50, y: 50, width: 350, height: 300) 
      view.addSubview(imageView) 
      i += 1 } 
    while (i < MyCoupons.count-1) 
} 
+1

這是因爲你把他們放在彼此的頂部(看他們的幀),這就是爲什麼你只看到第三個(最後一個被添加)。你需要做的是重新確定你想讓三個圖像出現在屏幕上的相應位置並相應地向前移動 – TNguyen

+0

你可以給我一些線索嗎?我希望他們一個接一個地展示。我該怎麼做呢?你的意思是爲第二個人設置新的框架等等? –

+0

編輯:我不能給你一個線索,除了在循環中更改每個圖像的框架的x和y,因爲我不知道你在UI – TNguyen

回答

0

您正在將每個UIImageView對象放在同一位置。看這句話:

imageView.frame = CGRect(x: 50, y: 50, width: 350, height: 300) 

嘗試改變xy協調在每次迭代看到的圖像的每一個,就像這樣:

let height = 350 
i = 0 
repeat { 
     let imageName = MyCoupons.siteCoupons[i]//"Coupons1.jpg" 
     let image = UIImage(named: imageName!) 
     let imageView = UIImageView(image: image!) 
     imageView.frame = CGRect(x: 50, y: i * height, width: 350, height: height) 
     view.addSubview(imageView) 
     i += 1 
} 
while (i < MyCoupons.count - 1) 

更新:

正如@ Mick MacCallum指出。您應該考慮UIImageView的高度。查看上面的更改。

+1

圖像視圖仍然會像這樣重疊。更新的原點需要考慮圖像視圖的大小。 –

+0

如何滾動?我做了什麼建議通過添加一個滾動視圖,但它沒有工作。我已經將分頁設置爲啓用。 –

相關問題