2015-05-07 2 views
9

Quindi voglio rendere il contenuto della timeline come instagram, sto usando una cella personalizzata sulla mia uitableview. Il mio problema è che ho già impostato l'altezza della cella per 345 sullo storyboard ma ottengo tavolo delle cellule come qui di seguito:Come creare una cella con altezza fissa su uitableview?

celltablescreenshot

e qui è la mia cella personalizzato su storyboard:

storyboardss

Come posso sistemarlo, quindi posso ottenere il risultato come nel mio storyboard?

+0

opzione Altezza segno personalizzato da IB. E imposta l'altezza della cella da Proprietà vista tabella. –

+0

ti ho anche detto la stessa cosa che Natasha ha pubblicato in risposta. –

risposta

18

La ragione per cui si stanno avendo questo problema è probabilmente avete impostato l'altezza delle righe la vostra abitudine di cellule Tableview a 345, ma che non è impostato come personalizzato in tutta l'altezza delle righe di UITableView è inferiore a 345. Quindi, cosa è necessario andare allo storyboard e selezionare la tabella (UITableview) e impostare l'altezza della riga alla massima altezza possibile della riga.

enter image description here

Supponiamo che si sta andando ad avere due diversi tipi di altezza delle righe. Uno con 345 e un altro con 325. Come 325 < 345, è possibile impostare l'altezza delle righe del tuo Tableview a 345.

enter image description here

Ora, selezionare la cella Tableview costume e fare la sua altezza di fila come consuetudine e impostare che a uno 345 o 325. Nel tuo caso, sarà 345.

enter image description here

Va bene adesso.

Tuttavia, un modo più appropriato quando si dispone di una cella di dimensioni diverse è utilizzare il metodo delegato per la specifica dell'altezza della riga.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(indexPath.row==0){ 
     return 345; 
    } 
    else if(indexPath.row==1){ 
     return 325; 
    } 
    else{ 
     return 300; //a default size if the cell index path is anything other than the 1st or second row. 
    } 
} 
+0

grazie, questa risposta spiega tutto per me: D –

1

Nella sottoclasse UITableViewController, impostare self.tableView.rowHeight = 345. Potrebbe essere un bug con le altezze dello storyboard che non vengono tradotte.

+0

Mostra un errore se lo metto in viewdidload –

+0

@EgaSetyaPutra 'self.tableView? .rowHeight = 345' – Schemetrical

+0

Può essere che tu non abbia creato un IBOutlet per il tuo tableview. Il codice sopra dovrebbe funzionare solo se si ha una presa che si connette a UITableview e si chiama tableview. Quindi nel tuo viewdidload, avresti potuto accedere a rowHeight con self.tableView.rowHeight. – Natasha

1

Qui è possibile impostare l'altezza della cella di visualizzazione tabella.

enter image description here

+0

Lo faccio già –

+0

@EgaSetyaPutra Seleziona Tableview dallo Storyboard. e impostare l'altezza della riga. –

4

Utilizzare questo metodo delegate:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return 345 
} 
+0

Ho provato questo e questo funziona anche per me –