0
在我的應用程序中,我正在使用自定義圖像數組視圖。用戶上傳的每個帖子的許多圖像應該是以旋轉木馬般的方式顯示的許多圖像。Firebase imageview陣列
在火力點,我從數值形象imageFive
{
"image" : "W585B.jpg",
"imageFive" : "",
"imageFour" : "",
"imageThree" : "",
"imageTwo" : "",
}
正如你在這個例子中只有一個值中有一個字符串見。用戶可以發佈一到五張圖片。我想追加用戶上傳的許多圖像並將其顯示在傳送帶上。這就是我現在所擁有的。
var imageArray = [UIImage]()
override func viewDidLoad() {
super.viewDidLoad()
if let stringImage = self.imageNames {
let imageRef = storage.reference(forURL: "gs://gsignme-14416.appspot.com/images/\(stringImage)")
imageRef.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in
if error == nil {
self.ImageOne = UIImage(data: data!)!
imageArray.append(self.ImageOne)
}else {
print("Error downloading image:")
}
self.carouselView.reloadData()
self.carouselView.type = .rotary
if let stringImages = self.imagesTwo {
let imageRefs = self.storage.reference(forURL: "gs://gsignme-14416.appspot.com/images/\(stringImages)")
imageRefs.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in
if error == nil {
self.ImageTwo = UIImage(data: data!)!
imageArray.append(self.ImageTwo)
}else {
print("Error downloading image:")
}
self.carouselView.reloadData()
self.carouselView.type = .rotary
})}
if let stringImage3 = self.imagesThree {
let imageRef = self.storage.reference(forURL: "gs://gsignme-14416.appspot.com/images/\(stringImage3)")
imageRef.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in
if error == nil {
self.ImageThree = UIImage(data: data!)!
imageArray.append(self.ImageThree)
}else {
print("Error downloading image:")
}
self.carouselView.reloadData()
self.carouselView.type = .rotary
})}
if let stringImage4 = self.imagesFour {
let imageRef = self.storage.reference(forURL: "gs://gsignme-14416.appspot.com/images/\(stringImage4)")
imageRef.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in
if error == nil {
self.ImageFour = UIImage(data: data!)!
imageArray.append(self.ImageFour)
}else {
print("Error downloading image:")
}
self.carouselView.reloadData()
self.carouselView.type = .rotary
})}
if let stringImage5 = self.imagesFive {
// AppDelegate.instance().showActivityIndicator()
let imageRef = self.storage.reference(forURL: "gs://gsignme-14416.appspot.com/images/\(stringImage5)")
imageRef.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in
if error == nil {
// AppDelegate.instance().dismissActivityIndicator()
self.ImageFive = UIImage(data: data!)!
imageArray.append(self.ImageFive)
}else {
print("Error downloading image:")
}
self.carouselView.reloadData()
self.carouselView.type = .rotary
})}
})
}
func carousel(_ carousel: iCarousel, viewForItemAt index: Int, reusing view: UIView?) -> UIView {
var imageView: UIImageView!
if view == nil {
imageView = UIImageView(frame: CGRect(x: 20, y: 0, width: 250, height: 270))
// imageView.backgroundColor = UIColor.lightGray
imageView.contentMode = .scaleAspectFit
imageView.clipsToBounds = true
carousel.clipsToBounds = true
}else{
imageView = view as! UIImageView
}
imageView.image = imageArray[index]
imageArray.removeAll()
return imageView
}
現在,我必須單擊兩次單元格才能顯示圖像。當我單擊單元格時,一旦它不顯示任何內容,則會在第二次單擊時顯示圖像。同樣,如果我點擊另一個單元格,它會在第一次單擊時顯示前一個單元格的圖像,然後在第二次單擊時顯示該單元格的圖像。
而且當我點擊多個圖像的單元格,在第一次點擊它說明不了什麼,第二次點擊,應用程序崩潰,並說致命錯誤:超出範圍的索引
我有點想象除了imageArray.removeAll()行之外的所有東西。我把它放在那裏,因爲當我從一個單元格移動到另一個單元格時,圖像會被追加。因此,來自單元格1的圖像會附加到單元格2中的圖像,並將顯示在旋轉木馬中,我不想但現在imageArray.removeAll()不起作用。 – juelizabeth
我更新了我的代碼,以我到目前爲止。所以我現在正在第一次點擊獲取圖像。現在我所說的唯一問題就是細胞圖像的追加 – juelizabeth