2011-09-21 2 views
1

UITableViewCell의 하위 클래스에서 addSubview 메서드를 사용하여 하위 뷰를 추가 할 때이를 추가합니다.removeFromSuperview를 호출해야합니까? 아니면 잘 릴리스해야합니까?

그런 다음 뷰를 더 이상 필요로하지 않으면 내 dealloc 메서드에서 풀어 놓았습니다. 제 질문은보기를 해제하는 가장 좋은 방법은 무엇입니까?

충분히 [myView release] 아니면 내가 호출해야합니다 :

[myView removeFromSuperview]; 
[myView release]; 

하거나 [myView removeFromSuperview];

도움 주셔서 감사합니다.

답변

0

보기를 만든 방법에 따라 다릅니다. 전달할 때 하위 뷰를 소유하지 않도록해야합니다.

여기에 일반 라우트를 갈 것입니다.

UIView * mySubview = [[UIView alloc] initWithFrame:frame]; 
[superView addSubview:mySubview]; 
[mySubview release]; 

원하는 위치에 하위보기가 있지만 superView가 소유하고 있습니다. superview가 뷰 계층 구조에 있고 사용자가 직접 소유하지 않은 경우 superView가 뷰 계층 구조 밖으로 나올 때 하위 뷰와 해당 소유자가 해당 뷰를 공개합니다.

1

간략한 규칙 : 당신이 그것을 지키면, 그것을 풀어 줘야합니다.

더 이상 화면에보기를 원하지 않는다고 가정합니다. removeFromSuperView을 호출해야합니다. 그렇지 않으면 superview는 여전히보기를 유지하고 소유권을 superview로 전송합니다.

관련 문제