2016-02-18 2 views
0

в моем приложении я использую collectionview.so Я использую модель и вставляю массив ответов в модели и устанавливаю perticular image в perticular cell. и его показ отлично, когда просмотр коллекции загружается, но когда я прокручиваю изображения, получая изменения, изображения загружаются в том месте, где я не хочу отображать его и его продолжать изменять.uicollectionview cell background image come repetadely

вот мой код

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell : seat_cell = collectionView.dequeueReusableCellWithReuseIdentifier("seat_cell", forIndexPath: indexPath) as! seat_cell 
    let data : SeatDetailModel = get_seat_detail.objectAtIndex(indexPath.row) as! SeatDetailModel 


    if (data.KoltukStr == "PI") || (data.KoltukStr == "MA") || (data.KoltukStr == "SA") || (data.KoltukStr == "KA") || (data.KoltukStr == "KO") 
    { 
     cell.backgroundColor = UIColor.clearColor() 
     cell.lblname.text = "" 
    } 

    else 
    { 
     cell.lblname.text = data.KoltukStr 


     if (data.DurumYan == "2") && (data.Durum == "0") 
     { 
      //cell.img_seat.image = UIImage(named: "seat_men") 
      //cell.backgroundColor = UIColor(patternImage: UIImage(named: "seat_men")!) 
      cell.backgroundView = UIImageView(image: UIImage(named: "seat_men")) 

     } 
     else if (data.DurumYan == "1") && (data.Durum == "0") 
     { 


      cell.backgroundView = UIImageView(image: UIImage(named: "seat_lady")) 
     } 
     else if (data.Durum == "0") 
     { 

      cell.backgroundView = UIImageView(image: UIImage(named: "seat_green")) 
     } 
     else 
     { 

      cell.backgroundView = UIImageView(image: UIImage(named: "blank_seat")) 
     } 
    } 
    return cell 
} 
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    let cell : seat_cell = collectionView.dequeueReusableCellWithReuseIdentifier("seat_cell", forIndexPath: indexPath) as! seat_cell 
    let data : SeatDetailModel = get_seat_detail.objectAtIndex(indexPath.row) as! SeatDetailModel 

    if (Gender.isEmpty) 
    { 
     alertViewShow(self, title: "Alert", message: "Please Select Gender before Seat Selection") 
    } 
    else 
    { 

     cell.backgroundView = UIImageView(image: UIImage(named: "seat_lady")) 

    } 
    [![This is the screen which load when collectionview load this is perfect][1]][1] 

} 

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 

    return get_seat_detail.count 
} 

this is the view which i got while i scroll uicollectionview

в изображении вы можете показать вид, который я получил во время прокрутки. но когда первоначально CollectionView загрузить его, показывая совершенное средство его не показывая место без номера, который был совершенен

+0

Это потому, что ячейки используются повторно при прокрутке, задайте изображение в обоих условиях. Когда изображение не требуется, установите nil в backgroundview – Savitha

+0

извините, но я смущен, можете ли вы отправить строку кода @Savitha –

+1

if (data.KoltukStr == "PI") || (data.KoltukStr == "MA") || (data.KoltukStr == "SA") || (data.KoltukStr == "KA") || (data.KoltukStr == "KO") { cell.backgroundView = nil } else {// установить изображение на основе условия} – Savitha

ответ

0

Ваш мобильный становится повторно, когда когда-либо вы создаете новую ячейку всегда очистить значения для элементов клеток, В ниже методе

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell : seat_cell = collectionView.dequeueReusableCellWithReuseIdentifier("seat_cell", forIndexPath: indexPath) as! seat_cell // After this line 
    cell.backgroundView = UIImageView() // clear old references 

добавить эту строку для изображения по умолчанию, это уничтожит старые ссылки.

+0

спасибо @prabhu, но теперь проблема заключается в том, что изображение не получает изменений в didSelectItemAtIndexPath –

+0

if (Gender.isEmpty) успешно или нет? –

+0

if (Gender.isEmpty) преуспеет, будет всплывающее предупреждение. иначе он изменит цвет фона ячейки –