zoukankan      html  css  js  c++  java
  • IOS之UIKit_Day07

    DAY07

    回顾:

    1》 UITableView

            1.一列多行

            2.表格的样式有两种:Plain和Group

            3. 包含的部分:

                  +表头视图

                         +分区头

                         +分区内容

                         +分区尾

                  +表尾视图

            4.使用步骤:

                  a.在View中添加tableView

                  b.设置当前的frame

                  c.设置实例的委托 tableView.datasource=self  tableview.Delegate=self

                  d.遵守协议< UITableViewDataSource,UITableViewDelegate >

                  e.把tableView给当前控制的控制器视图

                  f.实现三问一答

    2》UITableViewController

           自己写一个类

           1.控制器自带一个tableView

           2.已经遵守了协议

           3.控制器已经成为自带的表视图的数据源代理和对象代理

           4.实现三问一答

    ———————————————————————————————————————-

    1 多分区的表视图

    2 NSIndexPath类型

           该类型描述的是一种路径,为了定位一个单元格的位置,需要两个值;每一个分区的内部排列规则都是从0开始的。

           属性:

                  .section记录分区的分区号

                  .row记录的是行在每个分区内的行号

    3 表格其他属性

           3.1 表头视图 表尾视图

                  一个表中只能有一个表头和表尾

                  通过下列属性进行设置:

                         self.tableView.tableFooterView

                     self.tableView.tableHeaderView

           3.2 分区头 分区尾

                  一个表格可以有多个分区头,分区尾 通过回答问题进行设置,分区头 分区尾可以是简单字符串也可以是复杂的UIView

    -(NSString*)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

    -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

     

    -(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

    -(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

     

    4  UITableViewCell

           4.1 是什么?

                  系统定义的单元格类型,表格中的每一个都是一个UITableViewCell的实例

           4.2 单元格具有系统提供的默认的样式

                  系统提供了四种不同的样式摆放

    四种样式:

    UITableViewCell *cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue2

          reuseIdentifier:@"cell"];

                   UITableViewCellStyleDefault,//默认的 简单单元格有一个文本 和一个可以选择的image View

                   UITableViewCellStyleValue1,    //左对齐 文本在左边   cell.detailTextLabel    在右边对其并且颜色为blue

                   UITableViewCellStyleValue2,//右对齐 文本在右边cell.detailTextLabel    在左边对其并且颜色为blue

                   UITableViewCellStyleSubtitle//文本在左边对其cell.detailTextLabel    在文本的下方颜色为blue

           4.3 单元格具有系统提供的默认的组成视图

                  .tableLable标签

                  .detailTextLable详情标签

                  .ImageView视图标签

    设置行的高度:

                   --(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    5 单元格的重用(行)

           5.1 是什么?

                  将完整的超出屏幕的单元格存到队列之中,屏幕一旦出现空白区域,需要单元格填充时。先从队列中按照指定的标签来试取,看有没有已经使用完并存在队列之中的单元格,有就拿出来修改值后,重新加载到界面之中,如果没有就新建单元格。

           5.2 如何实现单元格的重用

                  前提:超出屏幕的单元格已经自动插到对列之中

                  具体做的内容:在回答每行的内容是什么样的时候先尝试着从对列中取单元格对象,取得结果有两种:要么取到,拿来继续使用。要么取不到可以重用的,那么自己新建即可。

                  方法一:

                         手动创建单元格重用

                         1. 先尝试着从队列中取cell

                         2. 判断取出的是否为nil

                         3. 如果是空 则明确创建一个cell

                  方法二:

                         系统负责创建指定样式的cell对象

                         1. 在ViewDidLoad中先tableView注册cell

                                [self.tableView registerClass[UITableViewCell class]forCellReuseIdentifier@"cell"]

                                2.  在生成的cell方法中直接从队列中按照指定的样式查找

                  注意:存到队列之中的单元格可以有多重的样式,所以每一种进入队列的单元格都需要给一个标示,去队列中取单元格时,也要按照某种标示取对象。

     

    6 三问一答的一答

           6.1 推出简单的VC来显示数据详情:

                  a. 数据结构:

                         +Arear                         NSObject

                                +name                  NSString

                                +population          NSInteger

                  要求:

                         1. 有一组城市信息,以tableView的形式来展示所有城市

                         2. 选中某一城市后推出新的VC显示城市的名字和人口

                  思路:创建一个基本数据类继承于NSObject起名为Arear 定义两个属性一个初始化方法和一个数据列

                                创建一个继承tableViewController的控制器导入基本数据类定义一个城市数组    根据row来判断是哪一个城市

           6.2 推出tableView来显示子数据

                  a. 数据结构:

                         +Arear                         NSObject

                                +name                  NSString

                                +population          NSInteger

                                +areas(区域)   NAArray(NSString)

                  要求:

                         1. 有一组城市信息,以tableView的形式展示所有城市

                         2. 选中某一城市后推出新的tableViewController显示城市的所有areas信息;

     

    7 TableView中加一行数据

                  数据结构:

                         +Arear                        NSObject

                                +name                  NSString

                                +population          NSInteger

                       要求:

                                a。第一个界面使用tableView展示所有的城市信息

                                b。城市名称在单元格的左侧显示

                                c。城市的人口在单元格的右侧显示

                                d。在导航栏的右上角有一个加号按钮,点击这个加号后,推出一个新的普通vc

                                e。在推出的界面2中,包含两个文本框,一个用于输入新的城市名称,一个用于输入该城市的人口数

                                f。界面2中下方有一个保存按钮,点击保存按钮后,返回到界面1,并且将在界面2中输入的数据回传到界面1,保存在界面1中用于存放所有城市信息的数组中

                                g。同时,更新表格,显示增加完城市信息后的新数据(注:如何刷新整个表格?[ self.tableView reloadData];

     

         练习:

                       1.照片查看器

                                在一个TableView中列出所有照片的缩小图、照片名称和拍摄的位置。当用户点击某一行时,推出一个vc,在此vc中显示大的图片,大的图片允许缩放。

    复习:协议的使用

    协议的定义:

                   1.协议名:类名+Delegate

                   2.方法的第一个参数一定是委托方自己

                   3.方法尽量体现调用的时机

    @protocol InputViewControllerDelegate <NSObject>

    -(void)inputViewController:(InputViewController*)inputVc inputFinishedWithMessahe:(NSString*)message;

    @end

    添加一个公开的Delegate方法

    @property(nonatomic,weak)id<BViewControllerDelegate> delegate;

    合适的时机给代理发消息

     

    照片的缩放

    1.定义一个UIImage的实例image

    2.定义一个UIImageView的实例并把image赋给UIImageView

    3.定义一个UIScroceView的实例并把imageView赋给UIScroceView

    4.定义一全局的UIImageView并把imageView

    5.遵守协议

    6.实现方法

  • 相关阅读:
    sstream && istringstream && ostringstream
    动态规划
    状态空间搜索(转)
    数学知多少
    挣得值分析法
    adobe acrobat pro 8.0/8.1 激活方法
    ZooKeeper Overview
    Java网络编程从入门到精通(25):创建ServerSocket对象
    使用 Spring 2.5 基于注解驱动的 Spring MVC(二)
    一起偶遇网随机视频测试版
  • 原文地址:https://www.cnblogs.com/katydid/p/4282755.html
Copyright © 2011-2022 走看看