2010-07-15 8 views
5
ref1view.hidden = NO; 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.25f]; 
[ref1view setAlpha:([ref1view alpha] == 1.0f) ? 0.0f : 1.0f]; 
[UIView commitAnimations]; 

¿Puede alguien darme un desglose de cómo funciona esto? Específicamente esta línea:Explique este código de Objective-C

[ref1view setAlpha:([ref1view alpha] == 1.0f) ? 0.0f : 1.0f]; 

Parece que esta función se animará la alfa entre 0-1 y volver de 1-0 y yo simplemente no entienden la sintaxis. Gracias!

Respuesta

13

[ref1view setAlpha:([ref1view alpha] == 1) ? 0.0f : 1.0f];:

Establece el alfa de ref1view ser 1 si es 0, o 0 si es 1. Esto se llama el operador ternario, una taquigrafía if-else.

(condition) ? conditionistrue : conditionisfalse; 
+0

Sí, op ternaria. – Kevin

3

es un operador ternario ... sería el mismo que

if(ref1view alpha == 1) 
{ 
[ref1view setAlpha:0.0f]; 
} 
else 
{ 
[ref1view setAlpha:1.0f]; 
} 
Cuestiones relacionadas