저는 아이폰 앱을 디버깅 중이며 완전히 이해하지 못하는 것을보고 있습니다.view.hidden = x와 [view setHidden : x]의 차이점
사용자의 선택에 따라 UIView가 표시되거나 숨겨집니다. 현재 코드는 [view setHidden:NO]
및 [view setHidden:YES]
으로보기를 표시하거나 숨 깁니다. 이것은 작동하지 않습니다. 시각적으로 말하면 이러한 진술은 무시됩니다. 그러나 각각을 view.hidden = NO
및 view.hidden = YES
으로 변경하면 모든 것이 예상대로 작동합니다.
저는 두 구문이 동등하지만 분명히 생각하지 않았습니다. 다른 모든 속성 (text
, font
등)의 경우 모두 동일하게 작동하므로 hidden
의 특수 효과는 무엇입니까?
편집 : 다음은 내 코드의 복사/붙여 넣기입니다. 나는 XCode 4.3에서 iPhone 시뮬레이터 5.0을 가지고 일하고있다.
내 프로젝트의 한 가지 예가있다.
IBOutlet UIView *panel; //Connected in interface builder
===========
- (void)makePanelVisible:(BOOL)visible
{
[panel setHidden:!visible]; //this does not work
panel.hidden = !visible; //this does work correctly.
}
setHidden은 단순히 숨겨진 속성에 대해 생성 된 setter이므로 차이가 없어야합니다. 사실, view.hidden = YES를 사용하여 속성을 할당하면 내부적으로 setHidden을 호출해야합니다. 일부 코드를 붙여 넣을 수 있습니까? 문제는 다른 곳에있을 수 있습니다. 보기 유형은 무엇입니까? –
붙여 넣을 코드가 많지 않습니다. 뷰는 문자 그대로 'UIView'입니다. 문제의 두 줄을 1 분 안에 붙여 넣을 것입니다. –