[技术文档][技术中心][iOS部][114啦]首页

需求说明

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()
    }

该方法是切换到热门列表,然后再刷新数据。

你可能感兴趣的:([技术文档][技术中心][iOS部][114啦]首页)