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

Mọi người có thể vui lòng cho tôi biết chi tiết về cách thức hoạt động này không? Cụ thể dòng này:Vui lòng giải thích mã Mục tiêu-C này

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

Có vẻ như chức năng này sẽ tạo hiệu ứng alpha từ 0-1 và ngược lại từ 1-0 và tôi không hiểu cú pháp. Cảm ơn!

Trả lời

13

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

Thiết lập alpha của ref1view là 1 nếu đó là 0, hoặc 0 nếu đó là 1. Đây được gọi là ternary nhà điều hành, một cách viết tắt if-else.

(condition) ? conditionistrue : conditionisfalse; 
+0

Yep, ternary op. – Kevin

3

của một nhà điều hành ternary ... sẽ được giống như

if(ref1view alpha == 1) 
{ 
[ref1view setAlpha:0.0f]; 
} 
else 
{ 
[ref1view setAlpha:1.0f]; 
} 
Các vấn đề liên quan