Domanda

I miei riempimenti grafici principali si comportano in modo strano quando si avvicinano, si toccano o si sovrappongono. Questo problema riguarda iPhone Simulator e iPhone OS 2.2.

Qui abbiamo due etichette e una vista personalizzata con due CGContextFillRect ():

problema di sovrapposizione

Quando il blu e il rosso si uniscono, sviluppano questa irritante linea di fusione di 0,5 px. Non riesco a liberarmene, o addirittura a cambiarne il colore.

Questa versione ha uno spazio di 1px tra i rettangoli ed è ovviamente riempita con lo sfondo nero:

pixel gap

Ho provato a disabilitare l'antialiasing ma questo non risolve il problema.

- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetAllowsAntialiasing(context, false);

CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
CGContextFillRect(context, CGRectMake(20.0, 35.0 + 40 + 20 , 100, 40));

CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextFillRect(context, CGRectMake(20.0 + 100 , 35.0 + 40 + 20 , 100, 40));

CGContextSetAllowsAntialiasing(context, true);

}

Qualche idea?

È stato utile?

Soluzione

Non ci sono difetti. È un'illusione ottica. Il tuo occhio sta integrando i valori R & B ravvicinati e inferendo la sovrapposizione del bianco.

Dai un'occhiata alla grafica con pixie (parte di Xcode) o xscope (un aggiornamento a pagamento da iconfactory).

http://www.freeimagehosting.net/uploads/th.e015daef50.png>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top