2010-07-15 3 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]; 

Может ли кто-нибудь, пожалуйста, рассказать о том, как это работает? В частности эта линия:Пожалуйста, объясните этот код Цель-C

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

кажется, что эта функция будет анимировать альфа 0-1 и обратно от 1-0, и я просто не понимаю синтаксис. Спасибо!

ответ

13

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

Устанавливает альфа ref1view равным 1, если это 0, или 0, если это 1. Это называется Тернарный оператор, сокращенная if-else.

(condition) ? conditionistrue : conditionisfalse; 
+0

Yep, тройном соч. – Kevin

3

сво троичный оператор ... был бы такой же, как

if(ref1view alpha == 1) 
{ 
[ref1view setAlpha:0.0f]; 
} 
else 
{ 
[ref1view setAlpha:1.0f]; 
} 
Смежные вопросы