我正在尝试创建一个界面,类似于meetup应用程序中的家庭场景。你可以在下面看到它的作用。我想重新创建[All, Going, ...]菜单行为。我希望它从列表的中间开始,然后向上滚动,直到它到达列表的顶部并粘在那里。与UITableView中节头的工作方式非常相似。
ios - iOS表格/列表中的粘滞菜单-LMLPHP
创建菜单不是问题。我的问题是创建粘性行为,并让它与列表的其余部分很好地协同工作。
我试过使用UITableView但我无法让菜单单元格保持不变。我不能将菜单放在节标题中,因为我想对菜单下面的数据使用节标题,而UITableView的行为是在下一节到达列表顶部时将节标题向上推。我无法将菜单放入UITableView.tableHeader中,因为菜单从列表中其他一些数据的下面开始。

UITableView
  - UITableViewCell -> Label
  - UITableViewCell -> UICollectionView of UIImageViews
  - UITableViewCell -> Label
  - UITableViewCell -> MyMenu (Sticky)
  - UITableViewHeaderFooterView - Section 1
  - UITableViewCell -> Data
  - UITableViewCell -> Data
  - UITableViewHeaderFooterView - Section 1
  - UITableViewCell -> Data
  - UITableViewCell -> Data

我试过使用包含菜单的UIScrollView和菜单下面的UITableView,但是在UITableView中使用UIScrollView(这是UIScrollView)是很痛苦的。我无法让滚动的行为感觉自然。
UIScrollView
  - UIView -> (Container)
    - Label
    - UICollectionView of UIImageViews
    - Label
    - MyMenu (Sticky)
    - UITableView - Data

我正准备写一个UICollectionViewLayout来做我想做的事情,但我觉得我必须重新创建我用UITableView免费获得的功能。
你知道怎么做吗?也许有一种可靠的方法可以使UITableViewCell粘贴,并使随后的节标题粘贴在它下面?

最佳答案

实现这种功能的一种方法是使用这样的视图层次结构:

UIView
  - UITableView
  - UIView -> (Container)
    - Label
    - UICollectionView of UIImageViews
    - Label
    - MyMenu (Sticky)

带有菜单的容器是表视图的同级,但它与表视图重叠。
在scroll view delegate方法中,您可以重新定位菜单容器视图,使菜单位于表内容上方。然后需要告诉表视图在顶部和第一个表单元格之间保留一些空间。为此,您可以配置表视图的scrollViewDidScroll(_:)

10-08 07:30
查看更多