UITabBarController 标签视图控制器
标签视图控制器:管理没有层次关系的视图控制器
UITabBarController和UINavigationController 继承于UIViewController
1.创建UITabBarController对象
2.将管理视图控制器放到一个数组中
3.设置子视图数组
4.将根视图控制器设置为TabBarController
过程: UIWindow -> UITabBarController -> UINavigationController -> UIViewController
管理的视图控制器(NSArray) viewControllers
标签栏 tabBar
选中的某个tabBarItem selectedIndex
代理 delegate
可以用协议来监听点击的标签,点击标签(tabBarItem)时触发该方法
- (void)tabBarController:(UITabBarController*)tabBarController didSelectViewController: (UIViewController*)viewController
{
NSLog(@"%ld", tabBarController.selectedIndex);
NSLog(@"viewController = %@", viewController);
}
UITabBar
UITabBar 包含多个UITabBarItem,每 个UITabBarItem对应 个UIViewController。UITabBar的 度是49。
系统最多只显5个UITabBarItem,当UITabBarItem超过5个时系统会 动增加 个更多按钮,点击更多按钮没有在 底部出现的按钮会以列表的形式显 出来
UITabBar的属性:tintColor,barTintColor,图像设置 等。
UIAppearance
UIAppearance协议可以进行对控件惊醒自定义颜色等操作.
***UITabBarController,UINavigationController,UITableViewController通常组合出现
UITabBarController可以嵌套UINavigationController
UITabBarController也可以模态UINavigationController
UITabBarController是项目开发中尝尽的布局样式,与UINavigationController不同,他的viewControllers都是并列的,而UINavigationController的是层次性的
UITabBar通常都会定义外观以适应程序风格,必要时会自定义
UITableView
UITableView是iOS系统中最重要的视图,在常用的APP中比较常见
UITableView继承于UIScrollView,可以滚动。UITableView的每 条数据对应的单元格叫做Cell ,是UITableViewCell 的一个对象,继承于UIView 。
UITableView可以分区显 , 每一个分区称为section , 每一行称为row , 编号都从0开始。 系统提供了 个专门的类来整合section和row,叫做NSIndexPath。
行高 rowHeight
分隔线样式 separatorStyle
分隔线颜色 separatorColor
UITableView的置顶视图 tableHeaderView
UITableView的置底视图 tableFooterView
显示数据相关的代理 dataSource
视图操作相关的代理 delegate
UITableView重用cell的流程
1. 当一个cell被滑出屏幕,这个cell会被系统放到相应的重用池中。
2.当tableView需要显示一个cell,先去重用池中尝试获取一个cell(红色的cell)。
3.如果重用池没有cell ,就会创建一个cell(黄色的cell )。
4.取得cell之后会重新赋值进行使用 。
UITableView编辑
UITableView 编辑步骤如下:
一.让TableView处于编辑状态
二.协议设定
1.确定Cell是否处于编辑状态
2.设定Cell的编辑样式(删除、添加)
3.编辑状态进行提交
*编辑结束后,由于numberOfRowSInSection这个协议只在tableview添加到父视图的时候走一次, 而且 table上的数据都是由数组提供,因此,需要先将数组中的元素删除,然后让 table的协议重新走一遍进行重新赋值。
即:先修改数据源,再刷新table(使用reloadData方法)
UITableViewController
UITableViewController是继承于UIViewController 中的一个类,只不过UIViewController中多了一个属性 tableView。
即:UITableViewController是一个自带table的视图控制器。
一::UITableViewController继承:UIViewController, 自带一 个tableView
二:self.view 不是UIView而是UITableView
三:datasource和delegate默认都是self(:UITableViewController)
四:开发中只需要建立UITableViewController子类