[技术文档][技术中心][iOS部][114啦]首页
2017-11-30 本文已影响0人
Zongzi_599
需求说明
1、启动APP时,首页默认为热门;
2、用户可以左右滑动选择频道
3、点击啦字可以快速定位到热门最顶部并刷新;
4、支持下拉刷新
5、单标签不显示数字,多标签时显示数字;
工具箱
1、工具箱跟随底部栏收起和显示;
2、初始默认显示出来
需求地址
http://192.168.1.75/114la/220/114la_220/#g=1&p=2_0_%E9%A6%96%E9%A1%B5_%E7%83%AD%E9%97%A8
层次结构
首页由NewHomePageViewController管理,热门、经验、说明书、我的等需要显示的则加到其子控制器中,并把view加入其子view。
var encyclopediaVc: LifeEncyclopediaViewController! //热门
var experienceVc: ExperienceViewController! //经验
var instructionsVc: InstructionsViewController! //说明书
var meVc: MeViewController! //我的
//各自界面的逻辑由各自界面的字控制器实现及控制。
新需求中加入了“城市黄页”,该模块需要由服务端接口控制是否显示。
核心代码
viewdidload时将服务端获取的是否显示取出,确保不会被中途修改该字段。然后使用shouldShowCity属性作为判断是否显示城市黄页。
shouldShowCity = shouldShowCityPage
将需要显示的控制器加入首页的子控制器中,并设置布局。
func setupSubController() {
encyclopediaVc = LifeEncyclopediaViewController()
addChildViewController(encyclopediaVc)
encyclopediaVc.didMove(toParentViewController: self)
experienceVc = ExperienceViewController()
addChildViewController(experienceVc)
experienceVc.didMove(toParentViewController: self)
if shouldShowCity {
instructionsVc = InstructionsViewController()
addChildViewController(instructionsVc)
instructionsVc.didMove(toParentViewController: self)
}
meVc = MeViewController()
meVc.shouldHiddenNavBar = true
addChildViewController(meVc)
meVc.didMove(toParentViewController: self)
}
切换到指定的某个界面,添加子控制器的顺序与添加子view的顺序一致,偏移量根据index计算。
showVc:指定控制器。
func showTargetView(showVc: UIViewController, animated: Bool) {
contentCurrentPage = indexForVc(Vc: showVc)
contentScrollView.setContentOffset(CGPoint(x: contentCurrentPage * contentScrollView.frame.width, y: 0), animated: animated)
}
func indexForVc(Vc: UIViewController) -> CGFloat {
return CGFloat(self.childViewControllers.index(of: Vc) ?? 0)
}
func resetHomePage() {
encyclopediaNavBar.hotBtnClicked(encyclopediaNavBar.hotBtn)
encyclopediaVc.scrollToTopAndRefresh()
}
该方法是切换到热门列表,然后再刷新数据。