[技術(shù)文檔][技術(shù)中心][iOS部][114啦]首頁(yè)

需求說(shuō)明

1、啟動(dòng)APP時(shí),首頁(yè)默認(rèn)為熱門;
2、用戶可以左右滑動(dòng)選擇頻道
3、點(diǎn)擊啦字可以快速定位到熱門最頂部并刷新;
4、支持下拉刷新
5、單標(biāo)簽不顯示數(shù)字,多標(biāo)簽時(shí)顯示數(shù)字;

工具箱
1、工具箱跟隨底部欄收起和顯示;
2、初始默認(rèn)顯示出來(lái)

需求地址

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

層次結(jié)構(gòu)

首頁(yè)由NewHomePageViewController管理,熱門、經(jīng)驗(yàn)、說(shuō)明書、我的等需要顯示的則加到其子控制器中,并把view加入其子view。

    var encyclopediaVc: LifeEncyclopediaViewController!    //熱門
    var experienceVc: ExperienceViewController!   //經(jīng)驗(yàn)
    var instructionsVc: InstructionsViewController!    //說(shuō)明書
    var meVc: MeViewController!    //我的
//各自界面的邏輯由各自界面的字控制器實(shí)現(xiàn)及控制。

新需求中加入了“城市黃頁(yè)”,該模塊需要由服務(wù)端接口控制是否顯示。

核心代碼

viewdidload時(shí)將服務(wù)端獲取的是否顯示取出,確保不會(huì)被中途修改該字段。然后使用shouldShowCity屬性作為判斷是否顯示城市黃頁(yè)。

shouldShowCity = shouldShowCityPage

將需要顯示的控制器加入首頁(yè)的子控制器中,并設(shè)置布局。

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

切換到指定的某個(gè)界面,添加子控制器的順序與添加子view的順序一致,偏移量根據(jù)index計(jì)算。
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()
    }

該方法是切換到熱門列表,然后再刷新數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評(píng)論 25 709
  • 需求說(shuō)明 1、首頁(yè)進(jìn)入顯示搜索歷史,網(wǎng)頁(yè)進(jìn)入對(duì)關(guān)鍵詞進(jìn)行聯(lián)想搜索。2、搜索需要用web打開都統(tǒng)一新建標(biāo)簽頁(yè)打開,加...
    Zongzi_599閱讀 657評(píng)論 0 0
  • 以下都是去之前的幻想: 一個(gè)清冷的冬日早晨,游客三三兩兩地沿著蜿蜒曲折的小徑緩步前行,兩側(cè)柿子橘紅,松柏墨綠,銀杏...
    馮小發(fā)閱讀 699評(píng)論 0 2
  • 關(guān)于夏天的記憶你是怎樣的,是陽(yáng)光,是風(fēng),還是炙烤下的柏油馬路。 而我的記憶里全是關(guān)于你的畢業(yè)季。 那年夏天,...
    向日葵的夏天M閱讀 801評(píng)論 0 1

友情鏈接更多精彩內(nèi)容