*项目

/*

 删掉启动main

 创建根控制器为tabBar控制器

window.rootViewController = rootVC; // 显示了tabBar

 main.storyBoard删掉了? 可以

 创建5个子控制器

 创建tabBarCt

 */

/*

  如何添加5个子控制器  self.viecons = @[]  self.addChildVc

 目标:让tabBar图片显示图片,间断的图片

 后面会用到sb,如何加载storyBoard 创建的控制器?先创建sb,然后根据sb instantiaten

 给5个控制器添加图片,先添加两个控制器,然后抽取方法

封装

 ----------- ----------- -----------

 先不管导航控制器->添加导航控制器一句话的事情:

 没有导航控制器,如何设置根控制器为导航控制器 先创建一个普通控制器,然后用UINavController alloc initWitRootCont:arVC

 目标:让tabBar下面的图片连起来, 自定义tabBar,继承自UIView

 */

/*

 自定义tabBar添加btn的方法没写出来 有个参数:UITabBarItem

 如何调用addTabBarBtn,知道在每次创建控制器的时候同时调用创建btn的方法

 但是要用自定义类的对象来调用,如果一个对象方法谁都能调用那还得了

 还要设置5个按钮的Frame,设置view的frame也没设置好 W/5

 layoutSubViews只是有bonse没有frame?有frame啊,但不是相对屏幕的frame

 自定义tabBar都是这样的套路么?addTabBar,在控制器里面调用这个方法创建按钮,另外一个方法里面设置tabBar的frame?

 先创建自定义tabBarView的对象,给对象frame = self.tabView.frame; 

 将对象添加到[self.view addSubView]    [self.table addSub]不行

 给tabBarView属性赋值,删掉tabView

 */

/*

 自定义navigationCon

 目标:设置导航条红色,竞技场不是红色,自定义导航条按钮

 在+(initialize)方法中 UINavigation appearanceWhenContainedIn:self

 不要写在viewDidLoad中

 */

/*

 这里没写出来,原因是想一次性把分类写出来,但是并不清楚想要的分类如何实现功能

 leftBarButtonItem的图片设置方法记不清  

 leftBarButtonItem alloc] initWithImg 或者 leftbarItem alloc]initWithCustomView

 leftBarButtonItem.image = [];显示不出来  没有frame?

 如果一下子抽不出了,应该先把功能实现,然后再一步步抽方法,再抽分类

 本质就是一个按钮,给按钮添加分类

 分类比自定义类更好?

 自定义tabBar->继承子UIView 有个代理方法,用于切换控制器.可以个性化设置tabBar的按钮图片(UIView)

 UIBarButtonItem的分类可以快速创建自定义的导航栏左右按钮(带图片文字,高亮图片btn属性)

 */

Setp   下面   目标显示出下面--显示出完整的下面---点击可以切换控制器

1.自定义tabBar , 创建单个按钮的方法

2.设置按钮的Frame  layoutSubViews

3.点击按钮切换控制器--代理

4.设置按钮点击状态 重写button  setHighLight

5.主控制器中setup自定义tabBar view

6.主控制器中(调用5次的方法中)添加自定button (自定义tabBar类里面已经设置好了frame)

7.addTabBar addChildController

--------------------------------------------------------------------------------------------------------

上面 导航条  目标:统一设置成红色 -- 竞技场白色导航条

1.创建新类设置背景颜色,init方法里面只设置一次 方法:   类方法 apperanceWhen

2.在子控制器-方法中指定自定义的根导航控制器 initWithRootVC

3.判断 是否是竞技场,竞技场单独处理

4.设置导航条字体颜色,大小 富文本  setTitleTextA   md NSFor

------------------------------------------------------------------------------------------------------------

自定义导航条按钮分类,其他不用分类?

封装按钮

----------------------------------------------------------------------------------------------------------------

竞技厂一大堆富文本细节

--------------------------------------------------------------------------------------------------

隐藏底部工具条

重写navaton push的方法  push出来的都要隐藏  count>0隐藏

修改setTabBar方法  Frame->bonse

-------------------------------------------------------------------------------------------------------

模型添加block属性,

控制器懒加载的时候给模型的block赋值

监听cell的点击事件,如果模型block属性不为空,执行block中的代码块: item.option();

自定义cell

// 自带的cell不能满足要求,要自定义

创建完UITableViewCell的类, 马上在第三个数据源方法中调用一下

自定义cell设值,要想直接点出模型,要重写模型属性的set方法

-setModel{

_model = model

Self.imageview.image = [UIImage imageNamed: model.icon]

}

这样就可以加载出来图片了,文字,即给cell赋值

子定义cell,添加右侧的箭头,开关

创建新的模型保存cell右侧的箭头,开关属性

先用自定义的cell加载左边的图片和标题,要重写cell模型属性的set方法

解析模型数据

setModel{

_model = model

Self.imageviw.image = [model.icon]

Self.textlable.text = model.title  

Self setRight];

}

  • (void)setRight{

If (self.item is kindofClass[])

Self.asscessview = UIImageView alloc]initWithimage:[UIImage imageNAmed:]

}

原文地址:https://www.cnblogs.com/tufei7/p/4787815.html