2013-08-19 4 views
0

두 개의 서로 다른 UIViewController가 있으며 둘 다 UiCollectionView가 있습니다. iPad를 회전 할 때 문제가 나타납니다. 다음 나는 세로 위치에있는UICollectionView 순환 애니메이션

enter image description here

내가 lanscape에 모드에서 처음의 ViewController에서 모두 좋은 3 열

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    [self.collectionView reloadData]; 
} 

이 필요하므로, 내 collectionView를 다시로드, 때 가로로 회전 collectionView 시작 회전 컨트롤러에는 3 개의 열이 있습니다.

enter image description here

내가 다른 컨트롤러에서 그것을 할 때

는하지만, 그것은이다

enter image description here

한 내보기에 순간이 collectionView, 그리고에서 다음 중 하나가 사라지는 것처럼 보이는 나쁜 상황을 얻는다.

나는 당신은 어떤에서이 메소드를 호출 할 수 있습니다

  • (무효)

invalidateLayout를 ..

답변

0

당신이보기를 호출 해봤 buils 레이아웃 같은 방법을 STANDART UICollectionViewFlowLayout를 사용하고 있습니다 레이아웃 정보를 업데이트 할 시간. 이 메서드는 콜렉션 뷰 자체의 레이아웃을 무효화하고 즉시 반환합니다. 따라서 여러 레이아웃 업데이트를 트리거하지 않고 동일한 코드 블록에서이 메서드를 여러 번 호출 할 수 있습니다. 실제 레이아웃 업데이트는 다음 뷰 레이아웃 업데이트주기 중에 발생합니다.

+0

는 I 시도 초반 [self.collectionView.collectionViewLayout invalidateLayout를]; ' 하지만 같은 결과가 있었어 – MaximusAlarmus

+0

이상한! shouldInvalidateLayoutForBoundsChange : 새 경계에 레이아웃 업데이트가 필요한 경우 레이아웃 객체에 요청합니다. - (BOOL) shouldInvalidateLayoutForBoundsChange : (CGRect) newBounds 분명히 ** 필수 항목입니다 ** CollectionViews에서 이것을 사용 하시겠습니까? –

-1

시도해 보셨습니까?

  • (공극) willRotateToInterfaceOrientation (UIInterfaceOrientation) toInterfaceOrientation {[self.collectionView reloadData]; }
+0

네, 지금 사용하고 있습니다 만, 해결책이 아니므로 잠시 멈춰서 동작하고 있지만, collectionView가 사라지지 않으면 회전해야합니다. – MaximusAlarmus

-1

해결책이 있다고 생각합니다. 회전을 애니메이션 할 때 이것을 이해하십시오.

  • (공극) willRotateToInterfaceOrientation (UIInterfaceOrientation) toInterfaceOrientation 기간 :(NSTimeInterval) 기간 {

    [슈퍼 willRotateToInterfaceOrientation : toInterfaceOrientation 시간 : 시간]; [self.collectionView reloadData];

  • }
관련 문제