2017-12-29 71 views
0

UICollectionView 및 UIToolbar가 포함 된 UICollectionViewController가 있습니다. UICoollectionView 아래에 UIToolbar를 배치하고 싶습니다 (화면 하단).UINavigationController없이 UICollectionView 아래에 UIToolbar를 둘 수 있습니까?

내가 지금 가지고있는 것은 UICollectionView가 화면의 맨 아래까지가는 것과 UIToolbar가 zorder의 맨 위에 놓이는 것입니다. 아래 그림에서 컬렉션보기는 도구 모음 아래로 확장됩니다.

Toolbar on top of a CollectionViewController

나는 내가이 with a NavigationController을 할 수 있다는 것을 이해하지만, 나는 또한 네비게이션 컨트롤러가 드릴 다운 행동입니다 읽었습니다. 나는이 툴바에있는 항목들이 반드시 뷰를 변경하지는 않는다는 것을 원하지 않는다. 또한 NavigationController가 내 코드를 필요한 것보다 더 복잡하게 만드는 것처럼 보입니다.

참고로, 내 UIToolbar는 프로그래밍 방식으로 추가되었습니다. 나는 또한 스토리 보드에 추가하려고했지만 내보기에 툴바를 배치하는 방법을 알아낼 수 없습니다.

enter image description here

내가보기에 도구 모음을 끌 수 없습니다 내가이 스토리 보드 도구 모음을 실행할 때 나타나지 않습니다 : 이것은 내 스토리 보드입니다.

question/answer은 툴바가 올바른 위치에 맞춰 지거나 scrollview가 "크기 조정"될 수있는 것처럼 보이지만이 동작을 보지 못합니다.

답변

1

UICollectionViewController를 만든 경우 UICollectionView가 기본보기이므로 위에서 아래에 배치 할 수 없으므로 UIToolbar를보기로 끌 수 없습니다.

UICollectionViewDataSource 및 UICollectionViewDelegate 프로토콜을 대신 준수하는 UIViewController를 만드는 것이 필요합니다. 그건 UIView를 기본보기로 가지며 UICollectionView와 UIToolbar를 추가하고 원하는대로 배치 할 수 있습니다. 또한 UICollectionView의 데이터 소스와 위임을 UIViewController에 연결하는 것을 잊지 마십시오.

+0

감사합니다. 나는 이것을했고 소리가 나는 것처럼 고통스럽지도 않았다. – galactikuh

+0

참고로,이 접근법에서 한 가지 문제를 발견했습니다. * UICollectionView.layoutSubview 메서드가 호출되기 전에 * UIViewController.viewDidLayoutSubviews가 호출됩니다. 아마도 컨트롤러는 즉각적인 뷰에만주의를 기울이고 있습니다 (함수의 이름이 잘못 지정 된 것으로 보이지만). collectionView에는 UICollectionViewController가 없으므로이 이벤트를 캡처 할 위치가 명확하지 않습니다. – galactikuh

+0

그러나 당신이 할 수있는 일은 UICollectionView.setNeedsLayout과 UICollectionView.layoutIfNeeded를 UIViewController.viewDidLayoutSubviews에 호출하여 UICollectioView.layoutSubview가 그 시점에서 발생하도록하는 것입니다. –