scrollView를 받고있는 collectionView는 베이스와 같이 스크롤을 프로그래밍으로 움직이는게 가능하다

이를 간편하게 만들어둔게 scrollToItem( at,at, animated )

간편해서 

indexPath만 따로 만들어두면 곧장 해당 아이템이 있는곳으로 날아갈수있다.

 

iOS 15 시뮬레이터에서 돌려보던중 해당 기능이 동작하지 않는걸 발견했는데 도저히 이유를 모르겠던중 아래와같은 답변을 찾았다

https://developer.apple.com/forums/thread/663156

 

UICollectionView scrollToItem brok… | Apple Developer Forums

Hi All Where we have to put this code? self.collectionView.isPagingEnabled = false self.collectionView.scrollToItem(at: indexPath, at: .left, animated: false) self.collectionView.isPagingEnabled = true In my scenario, Let's suppose there are 5 items to sho

developer.apple.com

 

iOS14에서 나온 문제건만..

iOS15에서도 고쳐지지 않았다

 

문제가된 경우는

scolltoITem하기전 isPgingEnabled가 true로 설정해둘경우이다

그래서 

아래와같이 하면된다.

item번호 11번으로 가는 코드이다.

collectionView.isPagingEnabled = false
collectionView.scrollToItem(at: IndexPath(item: 11, section: 0), at: .centeredHorizontally, animated: true)
collectionView.isPagingEnabled = true

scrollToITem내부 파라미터에대해서는 공식 홈페이지를 보시고...

해당 함수를 호출하기전 paging을 꺼둔다.

그리고 다시킨다

 

어처구니없는 해결방법이지만 동작을 잘해서 그냥 해당방법으로 가기로 결정했다.

 

반응형

Attempted to scroll the collection view to an out-of-bounds item (0) when there are only 0 items in section 0.

 

늦은 업데이트를 진행하였고 시뮬레이터가 15.2가 되었다.

회사 프로젝트를 돌려보던중 시뮬레이터에서 위와 같은 에러가 나면서 종료가 되고있다.

 

내용만 봐선 "아이템이 0인데 스크롤을 0으로 하려고한다 그러지마 "  라며 친절히 문제되는 부분을 알려주지만

 

이전에는 됐는데?

 

참담한 심정으로 콜렉션뷰의 스크롤하는 부분

      self.collectionView.scrollToItem

부분을

if (.count != 0 ) 를 걸어주어 0 이후에 변경될때만 호출해주도록 변경하였다.

 

동작은 한다

 

뭔가 미묘한 기분

반응형

+ Recent posts