iOS 不同类型的多控制器切换

一、效果图

多控制器切换.gif

二、分析界面结构

  • 首页控制器HomeVC的viewyou两个子控件,
    • 一个是标题菜单视图,它又有多个按钮子控件,和下面有一个红色的View指示器,点击按钮,让指示器执行动画
    • 一个是UIScrollView(因为它里面的内容可以滚动,当然你可以用UICollectionView,这里就用UIScrollView了)

三、逻辑分析

  • 1.在HomeVC的ViewDidLoad方法中,
    • 添加标题菜单和UIScrollView两个子控件,
    • 而且要设置它们的内边距,让标题菜单显示在导航栏下面,让UIScrollView显示在标题菜单下面。
    • 接着要添加5个子控制器到HomeVC,为什么呢?因为5个子控制器的View要显示在HomeVC上,那么view的控制器必须要被强引用才ok
  • 2.点击标题菜单的标题时,切换到对应的子控制器,而且让标题菜单的指示器执行动画,移动到点击的按钮下面
  • 3.默认选择5个子控制器中的第一个子控制器
  • 4.当手动滑动子控制器的时候,也要切换到对应的标题按钮和指示器执行动画
  • .........等等

四、实现点击不同类别,加载指定类别的网络数据,并切换到指定的子控制器

思路分析
  • 方案1(不可取):
    • 提供一个属性Type,那么用户可以 修改
  • 方案二:(不行):
    • 提供一个只读属性,不行,因为我们提供属性的原因是,让外界不能只能获取不能修改Type,但是如果父类提供一个只读属性那么子类就赋予自己的特性修改了
  • 方案三:(推荐)
    • 父类提供一个get方法,这样外界不能修改,而子类可以还 重写get方法,赋予自己的特性

五、代码实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,615评论 0 11
  • 第三章·家宴 柳家五小姐,在北木城中柳笑音的大名可是令人众所周知闻风丧胆。 她母亲出身尊贵,又为柳府嫡福晋之女,得...
    忆北关阅读 207评论 1 1
  • Objective 你对今天学的记得什么? 如何提高有效社交 所谓的“有效社交”,具体来说就是与他人进行高效而顺畅...
    徐伟豪阅读 211评论 0 0
  • 前几天看了一篇文章叫做《好姑娘不仅会省钱更会花钱》作为女性我看的真的挺有感触的,随着作者的叙述也掀起了我很多往日的...
    阳光下的雨同学阅读 740评论 1 0