2012-11-09 3 views
6

mia collezione struttura vista di cella è descritta come di seguitoapplica l'ombra per la vista rende il mio testo sfocato

enter image description here

Per cellItemAtIndex, faccio la seguente

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    UICollectionViewCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"reusedCell" forIndexPath:indexPath]; 


    // Set shadow around the cell 
    [cell.layer setMasksToBounds :NO ]; 
    [cell.layer setShadowColor  :[[UIColor whiteColor ] CGColor ] ];// shadow's color 
    [cell.layer setShadowOpacity :0.65 ];       // set the opacty 
    [cell.layer setShadowRadius  :5.0 ];        // set the blur radius 
    [cell.layer setShadowOffset  :CGSizeMake(0 , 0) ];    // set shadow position 
    [cell.layer setShouldRasterize :YES ];        // tell the cell to render it’s CALayer as a bitmap 
    [cell.layer setShadowPath  :[[UIBezierPath bezierPathWithRect:cell.bounds ] CGPath ] ]; // use a path to draw its shadow instead of using its 
    ...................................................................... 
} 

Quando eseguo il applicazione sul dispositivo, viene mostrata l'ombra. Tuttavia, il mio testo per le etichette è sfocato. Si prega di dare un'occhiata a seguito ripreso preso dal mio dispositivo

enter image description here

Se io rimuovere il commento il blocco Bode che viene utilizzato per eliminare l'ombra, il testo è così chiara come nell'immagine seguente enter image description here

I sono ... completamente perso. Qualcuno ha qualche idea su questo problema. Please help

+0

qualcuno ha avuto un'idea di questo ??? – tranvutuan

+0

mi hai salvato amico. tnxx alot – posha

risposta

3

Vorrei rimuovere setShouldRasterize, setShadowOffset e setShadowPath. Funzionerà senza di loro bene.

8

Si sta rasterizzando il livello, ma la scala di rasterizzazione predefinita è 1.0. Deve essere impostato su 2.0 per i display retina, altrimenti il ​​livello viene presentato solo a metà risoluzione.

cell.layer.rasterizationScale=[[UIScreen mainScreen] scale]; 
+0

Questa dovrebbe essere la risposta corretta:) – mskw

+0

Questo mancava da diverse altre risposte che spiegano come applicare le ombre esterne. Grazie. – guptron