2016-08-17 57 views
0

我是iOS編程新手。提前抱歉,以防我的問題聽起來很天真。我有一個UITableViewCell中的兩個自定義單元格。一個顯示圖像和標籤以及其他顯示橫幅。我想在3個單元格中顯示包含圖像的標籤,然後顯示一個標題,並繼續。具有兩個自定義單元格的UITableViewCell - 圖像不斷變化

目前,我可以根據需要顯示它,但是當我滾動時,圖像和橫幅在單元格中改變位置。

以下是我的代碼: -

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    if VideosTableViewController.flag >= 1 { 
     let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CustomTableViewCell 

     let remoteImageUrlString = imageCollection[indexPath.row] 
     let imageUrl = NSURL(string:remoteImageUrlString) 

     let myBlock: SDWebImageCompletionBlock! = {(image:UIImage!, error: NSError!, cachetype:SDImageCacheType!, imageURL: NSURL!) -> Void in 
     } 
     //cell.myImageView?.image = nil 

     cell.myImageView.sd_setImageWithURL(imageUrl, completed: myBlock) 

     //set label 
     cell.myImageLabel.text = labelCollection[indexPath.row] 
     print(cell.myImageLabel?.text) 

     VideosTableViewController.flag = VideosTableViewController.flag - 1 

     return cell 
      } 
    else 
    { 
     let adCell = tableView.dequeueReusableCellWithIdentifier("adCell", forIndexPath: indexPath) as! VideosBannerAdCustomTableViewCell 

     VideosTableViewController.flag = VideosTableViewController.flag + 3 

      VideosTableViewController.flag = 3 


     adCell.videosBannerView.adUnitID = "banner id" 
     adCell.videosBannerView.rootViewController = self 
     let request : DFPRequest = DFPRequest() 
     //request.testDevices = [kGADSimulatorID] 
     request.testDevices = ["my test device id"] 
     adCell.videosBannerView.loadRequest(request) 

     return adCell 

    } 
    } 
+0

您可以發佈GIF? –

+0

對不起,我不能上傳gif,因爲我今天加入了這個組,並且還沒有10個聲望:( – Molly

回答

1

嘗試使用indexPath,以確定應該使用哪個小區。您試圖顯示adCell在細胞第4,8的一面旗幟,......所以這是非常簡單的通過這個來完成:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    if indexPath.row % 4 != 0 || indexPath.row == 0 { 
     let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CustomTableViewCell 

     let remoteImageUrlString = imageCollection[indexPath.row] 
     let imageUrl = NSURL(string:remoteImageUrlString) 

     let myBlock: SDWebImageCompletionBlock! = {(image:UIImage!, error: NSError!, cachetype:SDImageCacheType!, imageURL: NSURL!) -> Void in 
     } 
     //cell.myImageView?.image = nil 

     cell.myImageView.sd_setImageWithURL(imageUrl, completed: myBlock) 

     //set label 
     cell.myImageLabel.text = labelCollection[indexPath.row] 
     print(cell.myImageLabel?.text) 

     VideosTableViewController.flag = VideosTableViewController.flag - 1 

     return cell 
      } 
    else 
    { 
     let adCell = tableView.dequeueReusableCellWithIdentifier("adCell", forIndexPath: indexPath) as! VideosBannerAdCustomTableViewCell 

     VideosTableViewController.flag = VideosTableViewController.flag + 3 

      VideosTableViewController.flag = 3 


     adCell.videosBannerView.adUnitID = "banner id" 
     adCell.videosBannerView.rootViewController = self 
     let request : DFPRequest = DFPRequest() 
     //request.testDevices = [kGADSimulatorID] 
     request.testDevices = ["my test device id"] 
     adCell.videosBannerView.loadRequest(request) 

     return adCell 

    } 
    } 
+0

我想在indexPath.row = 3然後是7然後是11等等的情況下顯示adCell,這意味着每3細胞 – Molly

+0

簡單,你只需要瞭解如何做這個邏輯。只需改變條件來實現你想要的。 – sahara108

相關問題