Пожалуйста, объясните этот код Objective-C - PullRequest
5 голосов
/ 15 июля 2010
ref1view.hidden = NO;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.25f];
[ref1view setAlpha:([ref1view alpha] == 1.0f) ? 0.0f : 1.0f];
[UIView commitAnimations];

Может кто-нибудь дать мне подробное описание того, как это работает? Конкретно эта строка:

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

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

Ответы [ 2 ]

13 голосов
/ 15 июля 2010

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

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

(condition) ? conditionistrue : conditionisfalse;
3 голосов
/ 15 июля 2010

это троичный оператор ... будет таким же, как

if(ref1view alpha == 1)
{
[ref1view setAlpha:0.0f];
}
else
{
[ref1view setAlpha:1.0f];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...