0

UIStackView가있는 tableview 셀이 있습니다. 내 cellForRow 메서드에서는 특정 요소에 따라 가로 뷰에서 세로 뷰로 스택 뷰 축을 변경합니다.Stackview 축 변경이 지연되었습니다.

웬일인지, 테이블 셀을 포함하고있는 viewcontroller를 navigationcontroller에 밀 때이 변경이 약간 지연된다. 푸시 애니메이션이 완료된 후 축 변경이 수행 된 것과 같습니다. 따라서 뷰 컨트롤러와 셀이 화면에 처음 나타날 때 축은 수평이며 애니메이션이 완료되면 세로로 변경됩니다.

테이블 셀을 포함하는 viewcontroller가 rootviewcontroller 인 경우 변경이 즉시 발생하므로 viewcontroller를 push하고 동시에 stackview 축을 변경하는 문제가있는 것 같습니다.

액세스를 변경 한 후 self.layoutIfNeeded()를 사용하여 시도했지만 레이아웃을 즉시 변경해야했지만 아무 것도 변경되지 않았습니다.

누구든지 이전에이 동작을 보았으며 해결책이 있습니까?

+0

스택보기 축을 변경하는 코드는 어디에 추가합니까? – PGDev

+0

이것은 테이블 셀 클래스에 상주하며 viewcontroller의 cellForRow 메소드에서 실행됩니다. – andlin

+0

보기 컨트롤러가 메모리에 완전히로드되고 푸시 애니메이션이 완료된 후에 만 ​​테이블보기가 다시로드됩니다. – PGDev

답변

1

관심있는 모든 사람들을 위해 나는 셀의 traitCollectionDidChange 메서드에서도 축을 설정하여이 문제를 해결할 수있었습니다. 이 메서드는 셀을 만들 때 항상 호출되며 푸시 애니메이션이 시작되기 전에 레이아웃을 업데이트하는 것처럼 보입니다.