2012-12-02 5 views
14

Ho aggiunto un UILabel al contentView di una cella personalizzata. Ho incontrato uno strano effetto collaterale. Sul bordo destro c'è un bordo grigio. Non so perché. Ho appena aggiunto un ordinario UILabel, non ho fatto nient'altro.Come posso rimuovere il bordo grigio di UILabel sul lato destro?

UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero]; 
label.text = @"value1"; 
label.textAlignment = UITextAlignmentCenter; 
[self.contentView addSubview:label]; 

- (void)layoutSubviews 
{ 
    UILabel *label = [self.contentView.subviews objectAtIndex:i]; 
    label.frame = CGRectMake(…); 
} 

enter image description here

risposta

8

non so il motivo, ma la soluzione è quella di sbarazzarsi di quel bordo grigio per impostare il colore della cella per clearColor sfondo.

label.backgroundColor = [UIColor clearColor];

+0

colori delle etichette impostazione più chiaro degradare le prestazioni. – Intentss

21

So che questa è una vecchia questione, ma ho appena incontrato questo problema esattamente lo stesso, così ho pensato che avrei potuto aiutare qualcun altro in cerca.

Per me il problema era che avevo numeri mobili nei miei telai. Di seguito fissata per me:

CGRectIntegral(myLabel.frame) 
+1

Grazie per il numero di virgola mobile. Non volevo cambiare la dimensione del mio frame, quindi ho creato un 'UIView' sotto' UILabel'. Ho quindi cambiato 'backgroundColor' su' UIView' e ho mantenuto 'UILabel'' clearColor' – Jon

+0

Grazie! Stavo avendo lo stesso problema con UILabels in un UIPageViewController. – DivideByZer0

+0

Preferisci questo +1 – Kjuly

3

Prima di tutto, è necessario impostare:

[label setBackgroundColor:[UIColor clearColor]]; 

successiva, impostare il colore che si desidera:

[label layer] setBackgroundColor:[UIColor redColor].CGColor];