请解释这段Objective-C代码

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];

有人可以给我解释一下这个是怎么工作的吗?特别是这一行:

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

看起来这个函数会将透明度从0到1再从1到0进行动画,但我不理解语法。 谢谢!

2个回答

13

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

如果ref1view的alpha值为0,则将其设置为1,否则将其设置为0。这称为三元运算符,是if-else语句的简写形式。

(condition) ? conditionistrue : conditionisfalse;

3

这是一个三元运算符...与下面的表达式相同

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接