所以我试图弄清楚如何在名称视图控制器上添加两个集合视图。现在,我当前拥有的收藏夹视图是垂直滚动的收藏夹视图,可显示提要上的用户帖子。我想添加一个“关注的人”部分,该部分在顶部水平滚动。请注意,我希望水平集合视图与整个视图一起向下滚动。
看起来像这样的东西
我考虑过添加一个节标题,然后尝试在其中添加一个集合视图,但是我不确定这是否是非法配置。
我也不确定是否需要在number of sections
行中添加2个部分。
这是当前的集合视图代码。
@IBOutlet weak var collectionView: UICollectionView!
// MARK: - UICollectionViewDataSource
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
if posts.count > 4 {
if indexPath.item == posts.count - 1 {
fetchPosts()
}
}
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if viewSinglePost {
return 1
} else {
if posts.count == 0 {
self.collectionView.setEmptyMessage("You haven't followed anyone yet.")
} else {
self.collectionView.restore()
}
return posts.count
}
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "PostsCell", for: indexPath) as! FollowingCell
cell.delegate = self
if viewSinglePost {
if let post = self.post {
cell.post = post
}
} else {
cell.post = posts[indexPath.item]
}
handleUsernameLabelTapped(forCell: cell)
handleMentionTapped(forCell: cell)
handleHashtagTapped(forCell: cell)
return cell
}
现在,它只是一个基本的供稿,它将获取用户上传的帖子。我认为,包括一些新用途的人员来参加将是很棒的用户体验。我最好的解决方法是什么?
答案 0 :(得分:0)
好像您想添加两个集合视图,一个用于水平的上视图,而垂直的下视图
在情节提要中添加两个收藏夹视图,为第一个提供一个
静态高度,从情节提要中获取出口,并给出口名称起类似UpperCollectionView
和LowerCollectionView
将委托和数据源设置为collectionViews
upperCollectionView.delegate = self
upperCollectionView.dataSource = self
lowerCollectionView.delegate = self
lowerCollectionView.dataSource = self
对于所有委托方法,请使用if - else
方法实现collectionViews
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if collectionView == upperCollectionView {
//do code for upperCollectionView
} else {
//do code for lowerCollectionView
}
}
如果看起来复杂,那么我建议您拆分一下,上半部分在父viewController中,下半部分在容器视图中。
如果您想像tableView滚动一样向上滚动整个内容,请将所有这些都添加到UIScrollView
上,这将处理滚动。
答案 1 :(得分:0)
如果您问我,我建议使用2个单元格的表格视图,第一个单元格用于收集视图,第二个单元格是您的常规单元格。这样,您可以双向滚动。但是,如果您只想使用collectionview,则需要为collection view添加标签并根据您的标签进行配置,即
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if collectionView.tag == 1 {
// your horizantal collection view
} else {
//vertical one
}
答案 2 :(得分:-1)
您可以将第一个索引定义为另一个集合视图。