Sto provando a utilizzare UIEdgeInsetsMake
per impostare lo sfondo della mia cella su un gradiente. Ho provato più cose per farlo funzionare, ma non importa quello che uso, c'è sempre un problema.UIEdgeInsetsCreare una strana banda nella cella e non so come risolverlo
Ho semplicemente due celle statiche, dove sto cercando di impostare la loro backgroundView
in willDisplayCell:
. Dispongo di immagini separate per le celle superiore, inferiore e centrale, ma poiché ho due celle ho solo bisogno della parte superiore e inferiore. Si tratta di quelle immagini:
Top
inferiore
C'è una linea mancante sulla parte superiore quella in basso in modo che non ci sia un 2pt linea tra di loro. Ho regolato leggermente l'altezza di quello inferiore per compensare (1pt in più). Queste immagini sono 44x44pt.
li ho impostato come segue:
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
UIImageView *topCellBackgroundImageView =
[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-top"]
resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
cell.backgroundView = topCellBackgroundImageView;
}
// If it's the last row
else if (indexPath.row == ([tableView numberOfRowsInSection:0] - 1)) {
UIImageView *bottomCellBackgroundImageView =
[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-bottom"]
resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
cell.backgroundView = bottomCellBackgroundImageView;
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
Questo non funziona bene. Come puoi vedere nell'immagine sottostante, nella cella superiore c'è una "banda" bianca di 1pt attraverso la cella che sembra abbastanza brutta. Non so perché è lì.
Così ho cambiato il topCellBackgroundView
di avere inserti bordo di (5.0, 5.0, 0.0, 5.0)
, come dal momento che è arrotondato solo sulla parte superiore, la proprietà bottom
non deve essere scomposto in (è piatta). Funziona perfettamente! Tranne quando selezioni la cella, la cella inferiore non occupa più l'intera cella.
Cosa dovrei fare? Sembra non importa quello che faccio, non funziona. Ho anche provato 1,0 invece di 0.0, oltre a -1.0 senza alcun risultato.
hanno u impostare l'altezza della riga di essere l'altezza delle backgroundimageviews? –
Metti in pausa l'app mentre questa visualizzazione tabella è sullo schermo e digita: po [[[ApplicazioneApplicationApplicationApplication] keyWindow] recursiveDescription] nel tuo debugger. Incolla qui l'output. –
Sì, entrambi sono 44 in altezza, materik. robert, è disponibile qui: https://gist.github.com/anonymous/2ad5556bceb6cd4666ed –