2012-01-10 3 views
1

저는 UIButton에서 흥미로운 것을 발견했습니다.UIButton 알파가 0으로 설정된 경우, FromSuperview를 제거 할 필요가 없습니까?

나는 현재 아웃 버튼을 퇴색하고있어

button.alpha = 0.0; 원래 나는이 시점에서뿐만 아니라 [button removeFromSuperview] 의도 있도록. 그러나 0.0 알파가 포함 된 버튼은 실행되지 않습니다.이 버튼은 실제로 존재하지 않는 것과 같습니다 (내 프로젝트의 목적과 마찬가지로).

알파가 0이되는 의도 된 결과입니까?

답변

6

숨김 UIControl은 이벤트에 응답하지 않습니다. 여기에는 alpha = 0.0 '요소가 포함됩니다.

그러나 수퍼 뷰에서 UIButton을 제거하지 않으면 수퍼 뷰가 유지하기 때문에 수퍼 뷰가 할당 해제 될 때까지 할당이 취소되지 않을 수 있습니다. 특히 버튼을 다시 페이드 인 할 수있는 경우에는 문제가되지 않을 수 있습니다. 메모리 관리가 올바른지 확인하십시오.

기능적으로 불필요한 가독성을 위해 button.enabled = NO도 추가합니다.

1

의도적으로 버튼을 숨기고 싶지만 나중에 다시 필요하면 alpha 값을 설정하면 작업에 잘못된 도구가됩니다. hidden 속성이 UIView 인 대신 숨기기 만하면됩니다.

버튼이 더 이상 필요하지 않은 경우 이미 설명한 것처럼 removeFromSuperview입니다.

alpha을 사용하면 코드에 암시 적으로 블렌딩하는 것이 복잡하다는 인상을주게됩니다.

가독성을위한 코드를 써주십시오. 인 텐트를 가능한 한 명확하게 전달하여 나중에 3/6/12/24 개월 동안 자신의 코드를보고있는 사람이 가능한 한 쉽게 이해할 수있게하십시오.

관련 문제