我尝试创建一个类似于Airbnb应用截图的Feed页面。我开始使用UITableViewController
并在滚动标题中添加动画;标题是那里的绿松石色区域。
现在我要添加这些页面标签(" For You"," Homes"," Experiences"和" Places")并混淆了我应该如何构建我的观点。仅供参考,每个标签均为tableView
。现在我没有页面标签的结构是:
UITabBarController
UIViewController
(包含UIView
标题,UITableView
内容)我能想到的选择很少:
UITableViewDataSource
,因此点击标签只是对dataSource
和reloadData()
UIViewController
将包含UIScrollView
contentView,因此点击标签为addSubView
至contentView,addChildViewController
至控制器根据我的研究,不建议使用选项#2,因为它将tableView放在scrollView中。但是选项#1要求所有tableView具有相同的cellID才能出列?听起来很硬。请告诉我这个场景的最佳实践!感谢。
答案 0 :(得分:1)
如果您描述,可能应该考虑使用容器视图。通过这种方式,您可以为您描述的每个案例分别创建视图。
你的例子:
在故事板中:
听到的是切换视图的代码。
class ViewController: UIViewController {
@IBOutlet weak var containerViewA: UIView!
@IBOutlet weak var containerViewB: UIView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func showComponent(_ sender: UISegmentedControl) {
if sender.selectedSegmentIndex == 0 {
UIView.animate(withDuration: 0.5, animations: {
self.containerViewA.alpha = 1
self.containerViewB.alpha = 0
})
} else {
UIView.animate(withDuration: 0.5, animations: {
self.containerViewA.alpha = 0
self.containerViewB.alpha = 1
})
}
}
}