2011-03-29 3 views
1

긴 scrollview에 200 개 이상의 uiLabels가 있습니다. 스크롤링 성능을 향상시켜야합니다. 라벨이 보이지 않을 때 라벨을 숨기거나 다시 표시하거나 해제하고 다시 작성하는 것이 좋습니다. 나는 내 uiLabels의 컬렉션이 있습니다 .. 스크롤 contentOffset.y 값에 의해 트리거성능을 위해 uiLabels를 숨기거나 제거하십시오.

for (int i=0; i<42; i++) { 
     [theScroller viewWithTag:i].hidden = NO; 
    } 

와 그 반대로,

을 : 그들에 내가 넣어 가지고 태그, 나는 현재와 숨기기를 해제/숨기기 위해 사람들을 사용하고 있습니다 plist 그래서 그것도 쉽게 공개하고 그들을 다시 빌드?

답변

1

@ 마크 예 레이블이 보이지 않거나 사용 중이 지 않은 것처럼 레이블을 해제하면 성능이 향상되고 메모리 관리에 도움이됩니다.

+0

uiLabel을 출시 할 예정입니다. for (int i = 0; i <42; i ++) {[release [theScroller viewWithTag : i]]; }? 그러면 상표가 사라지게 될까요? – mtompson

+0

@mark this [release [theScroller viewWithTag : i]];와는 달리 [[theScroller viewWithTag : i] release] 루프 쓰기에서이 방법을 제거하십시오. 위에서 언급 한 내용은 레이블을 해제합니다. – Sabby

+0

감사 Sabby, 그냥 한 가지!내가 그들을 만들 때 내 객체에 태그를 추가 할 때 0 또는 1을 사용해서는 안되는 것을 본 적이 있습니까? – mtompson

1

는 200 개 이상의 뷰를 갖는 어떤 도움

덕분에 .. 인한 성능 감소 :

  • 메모리 사용
  • 표시 관리/애니메이션을

그것은 절대적으로 더 나은 것 숨겨진 레이블을 제거하고 해제하고 필요한 경우 다시 작성하십시오. 메모리 공간이 적어지고 superview는 관리 할 하위 뷰가 몇 개뿐입니다 (더하기 빈) 라벨 재창조는 그리 높지 않습니다.)

scrollview + 라벨의 동작이 테이블 뷰와 비슷하면 라벨 재사용이 더욱 개선 될 여지가 있습니다. 슈퍼 뷰에서 숨겨진 레이블을 제거하고 제목/스타일을 변경 한 다음 새 위치에 다시 추가합니다.

+0

제거/출시 조언 주셔서 감사합니다. 모든 레이블이 크기가 다르기 때문에 표를 사용하거나 레이블을 재사용 할 수 있다고 생각하지 않습니다. – mtompson

+0

이동 중에도 레이블의 스타일과 프레임을 업데이트 할 수 있습니다 (프레임을 다시 계산하려면 더 많은 작업이 필요함). 그러나 당신은 단지 remove-release +로 다시 시작할 수 있으며, 나중에 충분히 재현 할 수 있습니다. – Jilouc

+0

집에 돌아 가면 많은 감사를 드리겠습니다. – mtompson

0

각 레이블이 단단한 경우 스크롤보기의 tableView 인스턴스를 사용해 볼 수 있습니다.

맞춤 테이블 셀을 사용하고 각 셀에는 라벨이 있습니다.

+0

모든 레이블의 크기와 색상이 다른 경우 tableView를 사용할 수 있습니까? – mtompson

+0

실시간으로 설정할 수 있습니다. – WaiLam

1

성능을 향상시키는 데 도움이되는 한 가지 방법은 레이블을 불투명으로 설정하는 것입니다. 투명한 배경으로보기를 사용하면 성능이 저하됩니다.

즉석에서 생성하는 것은 확실히 해결책이지만, 스크롤 할 때마다 멈추거나 스크롤 한 후에 만 ​​레이블이 나타나지 않을 수 있습니다.

또 다른 해결책은 this article에서 접근 방식을 사용하는 것입니다. 아이디어는 뷰의 레이블을 미리 렌더링하고 스크롤 할 때 매우 잘 작동하는 단일 정적 뷰로 끝나는 것입니다.

+0

많은 감사합니다. 기사를 읽게 될 겁니다. 제 scrollView는 92000 픽셀입니다. – mtompson

+0

투명 이슈에 관해서는 90도 회전시킨 배경색이 클 수있는 uilabels가 많습니다. – mtompson

+0

어쨌든 투명한 문제를 처리하는 방법을 기사를 읽는 흠! 내가 읽으십시오 ... – mtompson

관련 문제