0

UICollectionView가 UIView 인 Subclass에 포함되어 있습니다.
UIView는 NIB에서로드되고 IBOutlet이있는 UICollectionView를 포함합니다.UICollectionView didSelectItemAtIndexPath가 (2 ~ 3 초) 시작하는 데 오랜 시간이 걸립니다.

UICollectionView 대리자 및 데이터 소스는 뷰의 awakeFromNib에서이 UIView로 설정됩니다. 더 빠르고 더 반응이다, 더 빠른 전화에

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 

(하지만 당신 : 사용자가 UICollectionView의 셀을 누르면

는 다음과 같은 방법을 2 ~ 3 초 정도 걸립니다

는 아이폰 4S에 전화하세요 여전히 그래야하는만큼 반응이 없다는 것을 알 수 있습니다.) 4s에서도 매우 빠릅니다. 4는 9.3을 실행 중입니다 (20-40 MS의 시간이 필요합니다).

현재는 UX 관점에서 매우 느리게 수행됩니다.

그래서 didSelect 메소드가 숨을 쉬게하려면 UI 스레드가 너무로드되어 있습니까? (참고 : 다른 UI 작업은 빠름).

+1

정확히 didSelect에서 무엇을하고 있습니까? – Sulthan

+0

지금 당장 : 아무런 목적이 없습니다. 나는 NSLog (@ "TEST")를하고있다. – Alex

+2

다른 제스처 인식기로 터치가 지연 될 수 있습니다. – Sulthan

답변

2

문제점 : 내 셀 클래스에 UIImageView가 있고 크기가 1300 x 1300 이상인 큰 이미지를 설정하고 템플릿 (2 이미지로드)을 만든 다음 색조를 적용했습니다. 그것에 색깔. cellForRow에서이 작업을하고있었습니다 ... 그리고 코드가 didSelect에서 호출되지는 않지만 이미지 자체의 크기와 크기 조절은 셀을 선택할 때 didSelect에서 느려지는 원인이었습니다.

저는 128x128 이미지로 바꾸 었으며 동일한 코드가 이제는 빠르게 작동합니다.

+0

나는 1200 x 1200을 가졌으며, 128 x 128로 갔다. UICollectionView가 빠릅니다. – fonz101

관련 문제