请解释一下这个Objective-C代码

时间:2010-07-15 14:16:53

标签: iphone objective-c ios animation

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到0的alpha并从1-0回来,我只是不理解语法。 谢谢!

2 个答案:

答案 0 :(得分:13)

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

如果它为0,则将ref1view的alpha设置为1,如果为1,则设置为0.这称为三元运算符,简写为if-else

(condition) ? conditionistrue : conditionisfalse;

答案 1 :(得分:3)

它是一个三元运算符......与

相同
if(ref1view alpha == 1)
{
[ref1view setAlpha:0.0f];
}
else
{
[ref1view setAlpha:1.0f];
}
相关问题