2016-02-10 3 views
8
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ 

    let json = JSON(data: activityTableView.onlineFeedsData)[indexPath.row] // new 
    if(json["topic"]["reply_count"].int > 0){ 
     if let cell: FeedQuestionAnswerTableViewCell = tableView.dequeueReusableCellWithIdentifier(kCellIdentifier_reply) as? FeedQuestionAnswerTableViewCell{ 

      cell.selectionStyle = .None 
      cell.tag = indexPath.row 
      cell.relatedTableView = self.activityTableView 
      cell.configureFeedWithReplyCell(cell, indexPath: indexPath, rect: view.frame,key: "activityTableView") 
      // Make sure the constraints have been added to this cell, since it may have just been created from scratch 
      cell.layer.shouldRasterize = true 
      cell.layer.rasterizationScale = UIScreen.mainScreen().scale 

      return cell 
     } 
    }else{ 
     if let cell: FeedQuestionTableViewCell = tableView.dequeueReusableCellWithIdentifier(kCellIdentifier) as? FeedQuestionTableViewCell{ 

      cell.selectionStyle = .None 
      cell.tag = indexPath.row 
      cell.relatedTableView = self.activityTableView 
      cell.configureFeedCell(cell, indexPath: indexPath, rect: view.frame) 
      // Make sure the constraints have been added to this cell, since it may have just been created from scratch 

      cell.layer.shouldRasterize = true 
      cell.layer.rasterizationScale = UIScreen.mainScreen().scale 
      return cell 
     } 
    } 


    return UITableViewCell() 
} 

Es gibt Unterschied von 200-400 in der Höhe in jeder Zelle, also versucht, die Höhenberechnung in estimatedHeightForRowAtIndexPath .Ich kann nicht die genauen Schätzung der Höhe bei diesem Verfahren zur Durchführung des bcz der BerechnungUITableView Selbst Sizing Zelle Scrollen Probleme mit großem Unterschied der Zellenhöhe

und Caching die Höhe in willDisplayCell Methode, aber immer noch die Scroll-Sprünge wie dauert es Zeit zum Rendern.

Die Zelle ist wie das Facebook-Kartentyp Layout mit vielen dynamischen Daten mit variabler Höhe Text und images.Can mir jemand hilft in diesem

+0

Können Sie mir mehr darüber erzählen, wie die Höhe der Zelle berechnen in 'Tableview (_ : geschätztHeightForRowAtIndexPath:) '? –

Antwort

0

.Dank Wenn Sie jede Zellen Höhe zu berechnen sind in der Lage, nur verwenden die Tableview (_: heightForRowAtIndexPath) statt estimatedRowHeightAtIndexPath Eigenschaft. estimatedRowHeightAtIndexPath ist vor allem in smthg wie selfsizing Zellen verwendet usw.

+0

NSMutableDictionary * cellHeightsDictionary; // in Code initialisieren cellHeightsDictionary = @ {} mutableCopy. –

0

versuchen diese. Ich hoffe, das könnte dir helfen. Es hat für mich funktioniert. Tatsächlich berechnet dies die Zellenhöhe, bevor sie angezeigt wird. Danke.

NSMutableDictionary *cellHeightsDictionary; 

// Setzen Sie dieses in viewDidLoad

cellHeightsDictionary = @{}.mutableCopy; 

// UITableView Delegatmethoden

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath 
NS_AVAILABLE_IOS(7_0) 
{ 
    NSNumber *height = [cellHeightsDictionary objectForKey:indexPath]; 
    if (height) return height.doubleValue; 
    return UITableViewAutomaticDimension; 
} 

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [cellHeightsDictionary setObject:@(cell.frame.size.height) forKey:indexPath]; 

} 
+0

thnks @yogesh i definetly versuchen, aber ich landete automatisches Layout und Code es in Rahmen-basierten Entfernen AsyncdisplayKit mit ma Anforderungen – Mukesh

+0

ok, wie Sie mögen acheive. –

Verwandte Themen