2013-12-10 2 views
1

셀에 10 개의 하위 뷰가있는 컬렉션 뷰를 설정했습니다.UICollectionView 스크롤 지연

파단은 -imageview -uilabel -imageview -uilabel

처음 컬렉션 뷰는 아이 패드의 시간 표시 (15 개) 세포를 그 위에 라벨 -text 전망 -imageview 있습니다. 아니요 스크롤을 스크롤하면 하단 또는 상단 (재사용 셀)의 셀을 바꿀 시간이 될 때 일시 중지됩니다. 나는 그림자를 제거했지만 여전히 같은 문제를 가지고 있습니다.

따라서 이전 셀을 재사용하여 지연이 발생할 때 문제가 발생합니다.

Btw, 네트워크를 통해로드 된 이미지가 없습니다.

답변

2

저는 오래 전에이 답변을 받았지만 다른 사람들의 이익을 위해 그리고 같은 문제에 봉착 할 수 있습니다.

그림자를 제거하는 것 외에도 "깨끗한 색"의 배경을 제거해야합니다. 추가 처리가 필요한 추가 도면은 제거하거나 대체 가능해야합니다. 무거운 물건 들기, 텍스트 서식 지정, 날짜 형식화는 컬렉션 또는 테이블보기를 표시하기 전에 수행해야합니다. 세포가 단지 선물 만하고 처리하지 않는지 확인하십시오. 피할 수 없다면 다른 스레드에서 처리하십시오.

스크롤 속도를 측정하려면 악기> 그래픽> 핵심 애니메이션 도구를 사용하여 프레임 속도를 측정해야합니다.

시험해 보면 차이가 있음을 알 수 있습니다.

3

편집 : 자동 크기 마스크 실험 할 필요가 없습니다, 단지 UICollectionView의 성능 향상 그것은 아마 오버 헤드 자동 레이아웃 입니다 http://noxytrux.github.io/blog/2014/09/25/ios8-weirdness-part3-laggy-uicollectionview/

에 대한이 짧은 기사를 읽어 보시기 바랍니다. 대신 자동 크기 조정을 시도해보십시오.

  • 성능을 테스트 할 수있는 응용 프로그램을 실행
  • (엉망 레이아웃에 대해 걱정하지 마십시오) 휴대 XIB 파일을

    1. 턴 오프 자동 레이아웃 :

      당신은 모든 것을 저지하고 실험을 할 수 있습니다 효과가 눈에 띄는 경우 autolayout 대신 마스크를 자동 크기 조정 (및 필요한 경우 코드로 레이아웃)하십시오.

    이렇게하면 UICollectionView 성능 문제가 해결되었습니다. 한 번에 많은 양의 보이는 세포가있을 때 가장 도움이됩니다. 시간 프로파일을 실행하고 대부분의 주 스레드 시간을 먹고 무엇을 참조하십시오 당신이 이미지보기이있는 경우

    또한, 악기에 대해 잊지 마세요이 답변을 Setting image property of UIImageView causes major lag

    를 참조하십시오.

  • +0

    저를 위해 고쳐졌습니다. 생명의 은인! – pixelfreak

    관련 문제