2011-03-23 10 views
2

UIImageViews가있는 UIView가 두 개 있습니다. 보기 처음으로보기를 표시 할 때 표시되기 전에 눈에 띄는 지연 (0.5 초 정도)이 있습니다. 다시 표시되면 모든 것이 작동합니다.UIImageView는 처음 표시 될 때 지연이 발생합니다.

나는 모든보기를 추가하고 제거하여이 문제를 해결할 수있었습니다. 이처럼 :

[self performSelectorOnMainThread:@selector(addAndRemoveAllViews) 
         withObject:nil 
        waitUntilDone:NO]; 

기능은 [view removeFromSuperview] 다음 모든 뷰와 [addSubview:view]을 통해 루프. 이미지가 표시되지 않는 동안로드되도록 트리거하는 것 같습니다.

질문 :

  1. 이 모두 나에게 해결 방법 같은 느낌. 이러한 유형의 문제를 처리하는 더 좋은 방법이 있습니까?
  2. 완료되면 콜백 또는 무언가를 얻을 수 있습니까? 완료되면 애니메이션을 실행하고 싶습니다.

업데이트 :

이미지는 다음과 같이 NSData에서 만든이 :

[[UIImageView alloc] initWithImage:[UIImage imageWithData:rawData]]; 

답변

2

은 이미지가 이미지보기보다 클 가능성이 높다 보인다. 가능한 경우 이미지보기에 필요한 크기로 축소하십시오.

초기 지연으로 인해 캐시 된 버전을 사용하는 스토리지에서 이미지를로드하는 것이 더 빠릅니다.

+0

감사합니다. NSData에서 이미지 생성에 대한 내 업데이트를 확인하십시오. 이 후 UIImageViews로 무엇인가해야합니까? 당신은 UIImageView의 크기를 축소 언급합니까? –

+0

흠, 홀수입니다. imageWithData가 캐싱되어서는 안됩니다. 또한 이미지 자체를 더 작게 만드는 방법에 대해 이야기 했으므로 (이미지를로드하는 데 걸리는 시간이 적어 짐) ImageView를 더 작게 만들지 않습니다. 시스템이 다른 작업을 수행하는지 확인하기 위해 이미지가로드되는 동안 TimeProfiler 도구를 사용해보십시오. –

+0

아마도 관련이 있습니다. 나는이 기간 동안 때때로 메모리 경고를받습니다. 뷰에는 1024x768의 여러 이미지가 포함되어 있습니다. 그러나 할당/기억 장치는 내가 8-10MB (iPad 장치)를 사용하고 있다고 알려줍니다. 내가 왜 단지 10MB의 RAM을 사용하고있을 때 나는 메모리 경고를 받는지 이해하지 못한다. 이것이 관련 될 수 있습니까? –

관련 문제