John
John

Reputation: 213

UITableview reusable cell issue swift

I have tableview in which each cell contains label,image and button. My problem is when i disabled first cell and scroll table view 5th cell also disable

here is code

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! DetailTableViewCell

    cell.preservesSuperviewLayoutMargins = false
    cell.separatorInset = UIEdgeInsetsZero
    cell.layoutMargins = UIEdgeInsetsZero
    print(indexPath.row)
    if indexPath.row == videoName.count
    {

      cell.video_name?.hidden = true
      cell.artist_name?.hidden = true
      cell.img?.hidden = true
      cell.viewer?.hidden = true
      cell.btn_add?.hidden = true
      tableView.separatorStyle = UITableViewCellSeparatorStyle.None

      indicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
      indicator.center = cell.contentView.center

      if self.pageToken != ""
      {
      cell.contentView.addSubview(indicator)
      indicator.startAnimating()
      if videoIDArr.count == 25 || videoIDArr.count == 5
      {
         if check == 0
         {
          loadMoreMostPopularVideo()
         }
         else
         {
          loadMorePlaylistVideo()
         }
      }
      }
    }
    else
    {
     indicator.stopAnimating()

     cell.video_name?.hidden = false
     cell.artist_name?.hidden = false
     cell.img?.hidden = false
     cell.viewer?.hidden = false
     cell.btn_add?.hidden = false
     tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine


     cell.video_name?.text = videoName[indexPath.row]
     cell.artist_name?.text = artistName[indexPath.row]

     cell.img?.sd_setImageWithURL(NSURL(string: self.thumbURL[indexPath.row]))
     cell.viewer?.text = "\(viewerArr[indexPath.row]) views"
     cell.btn_add.tag = indexPath.row
     cell.btn_add?.addTarget(self, action: "addVideo:", forControlEvents: UIControlEvents.TouchUpInside)

     // Disable cell code
     if dataVideoName.contains(cell.video_name.text!)
     {
        cell.img.alpha = 0.50
        cell.btn_add.alpha = 0.50
        cell.viewer.alpha = 0.50
        cell.video_name.alpha = 0.50
        cell.artist_name.alpha = 0.50
        cell.userInteractionEnabled = false
     }
    }

    return cell
}

enter image description here enter image description here I have face this problem in morning give me some suggestion to solve this problem

Thanks

Upvotes: 0

Views: 928

Answers (1)

Allen
Allen

Reputation: 1734

You need enable cell codes for if indexPath.row == videoName.count {} to have cell's settings symmetrically


if indexPath.row == videoName.count {
     ....

     // Enable cell code
     if dataVideoName.contains(cell.video_name.text!)
     {
        cell.img.alpha = 1
        cell.btn_add.alpha = 1
        cell.viewer.alpha = 1
        cell.video_name.alpha = 1
        cell.artist_name.alpha = 1
        cell.userInteractionEnabled = true
     }
} else {
     ....
     // Disable cell code
     if dataVideoName.contains(cell.video_name.text!)
     {
        cell.img.alpha = 0.50
        cell.btn_add.alpha = 0.50
        cell.viewer.alpha = 0.50
        cell.video_name.alpha = 0.50
        cell.artist_name.alpha = 0.50
        cell.userInteractionEnabled = false
     }
}

Upvotes: 2

Related Questions