2010-08-02 3 views
0

내가 이렇게 생성 된 하위 뷰를 갱신하려면 : 메소드를 호출하여입니까?

CGRect keyLabelRect = CGRectMake(2, [heightofrow intValue]*i, [breitescroller2 intValue]-2,[heightofrow intValue]); 
UILabel *keyLabel = [[UILabel alloc] initWithFrame:keyLabelRect]; 
[Inhalt1 addSubview: keyLabel]; 
[keyLabel release]; 

를, "breitescroller2는"새로운 값을 가지고,이 용어는 등 두 번째와 세 번째 시간이라고합니다. 내 문제는 이전 위치의 "이전 UILabel"이 뷰에 머물러 있지만 새로운 위치로 대체하려고합니다. 간단한 방법이 있습니까? 전체 하위 뷰를 삭제하여 (keyLabel는 removeFromSuperView] 새로운 일의의도 삭제됩니다.

감사합니다 도움을!

답변

0

나는 확신 당신 removeFromSuperview 통해 기존 라벨을 제거하기 위해 먼저해야합니다.

+0

"UILabel * keyLabel"을 제거하여 내 메서드를 변경했는데 이제 헤더에서 Label을 만들었습니다. 이제 "removeFromSuperview", thx를 사용할 수 있습니다. – Jonathan

3

당신이 만약 그렇게하면 기존 UILabel의 속성을 간단히 수정하고 매번 새로운 UILabel을 생성하지 않는 것이 더 낫지 않겠습니까? 지금 나와 같은 방식으로 작업하고있는 것처럼 보입니다. 이전 버전을 새로운 것으로 바꾸면 메모리가 비효율적입니다.

나는 단지 begi입니다. Cocoa 및 Obj-C와 작업 할 때 nner를 사용했기 때문에 제안을 실현할 수없는 무언가가 누락 될 수 있습니다.

+0

네, 맞습니다. 성능을 최적화하기위한 방법을 바꿀 것입니다. – Jonathan

+0

올바른 : 왜 계속 재 작성하나요? 그게 문제는 아니지만 CPU 오버 헤드라는 것은 정말로 기억이 아닙니다. 라벨의 텍스트를 변경하는 것이 훨씬 효율적입니다. CPU주기 (및 확장하여 전력)가 중요한 모바일 장치에서 효율성은 가장 중요한 관심사 중 하나입니다. –