2017-03-05 3 views
1

parameterCollectionView에 새로 삽입 한 항목 (여기에서 "Wert 12")로 스크롤하려고합니다. 하지만 어떻게 든 스크롤 위치는 단지 마지막 항목을 무시합니다. NSCollectionViewScrollPosition.trailingEdge을 사용하면 마지막 항목이 표시되어야하지만 그렇지 않은 항목이 표시됩니다.NSCollectionView 스크롤이 올바르게 작동하지 않습니다.

선택한 항목의 테두리 상자의 후행 가장자리가 컬렉션보기의 경계의 후행 가장자리에 인접하도록 스크롤합니다.

내 코드 :

parameterCollectionView.reloadData() 
    let section = 0 
    let item = parameterCollectionView.numberOfItems(inSection: section) - 1 //<-- last item in collection view 
    let myIndexPath: Set = [IndexPath(item: item, section: section)] 
    parameterCollectionView.scrollToItems(at: myIndexPath, scrollPosition: NSCollectionViewScrollPosition.trailingEdge) 

흥미가 있습니다 : 코드 아무것도 변경을 통해 마지막으로 전 항목을 선택할 때. 그래서, 마지막 항목은 어떻게 든 무시됩니다 :

parameterCollectionView.reloadData() 
let section = 0 
let item = parameterCollectionView.numberOfItems(inSection: section) - 2 // second last item in collection view 
let myIndexPath: Set = [IndexPath(item: item, section: section)] 
parameterCollectionView.scrollToItems(at: myIndexPath, scrollPosition: NSCollectionViewScrollPosition.trailingEdge) 

그래서 모두 코드 조각 컬렉션보기로 동일한 동작을 생성합니다 : 마지막 항목 ("Wert는 12") 도시하지 않음!

enter image description here

왜 내게 너무 창녀 NSCollectionView 모든 시간 ???

+0

NSCollectionViewScrollPosition.right를 사용해보십시오. 이것이 작동하는지보십시오. – Alan

+0

아니요! 나는 모든 것을 시도했다. 이 문제는 어떻게 든 다른 것과 관련이 있습니다. 어쨌든 고마워! – JFS

답변

1

NSCollectionView scrollToItems (at :) 메서드에 버그가 있다고 생각합니다. NSCollectionView는 위의 메서드가 호출 되더라도 스크롤해야하는 사실을 무시하는 경우가 있습니다. 이 경우 "스크롤 한"항목은 NSCollectionView의 보이는 프레임 외부에 머물러 있습니다.

따라서, 대응하는 NSCollectionViewItem은 예를 들어, 아이템 호출 (at :) 메소드. 이 경우 항목 (at :)은 유효한 항목 참조 대신 nil을 반환합니다.

관련 문제