当前位置:u赢电竞手机版 > 操作系统 > iOS常用控件-UITableViewCell操作系统

iOS常用控件-UITableViewCell操作系统

文章作者:操作系统 上传时间:2019-08-13

iOS常用控件-UITableViewCell,-uitableviewcell

一、 封装cell:

1、加载xib文件的两种方式

  <方式1> (NewsCell是xib文件的名称)
    NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"NewsCell" owner:nil options:nil];

  <方式2>
    UINib *nib = [UINib nibWithNibNamed:@"NewsCell" bundle:nil];
    NSArry *objects = [nib instantiateWithOwner:nil options:nil];

 

二、设置cell的高度

  1. 如果每一行的cell高度都是一样,应该用代理方法设置cell的高度
  - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

  {

      // 如果每一行的高度一样的话,可以在viewDidLoad中设置: self.tableView.rowHeight = 80;
        // 返回indexPath这行对应的cell的高度
        return 80;
  }

 

====================================================================

三、自定义cell两种方式:

  方式一、通过xib描述cell:
    1> 一定要注意在xib的cell中设置重用标识 (reuse identifier)

    2> 封装的步骤

      新建xib描述cell的样子——DealCell.xib
      新建 UITableViewCell 的子类 (定义一个类DealCell ,继承自UITableViewCell )——DealCell (封装xib内部的所有东西)
      修改 xib 中 cell 的类名 (class) 为 DealCell。
      在 DealCell 中拥有xib中的所有的子控件 (声明属性、进行连线) 。
      新建模型Deal (定义一个类 Deal ,继承自NSObject ),封装数据。
      给DealCell增加模型属性 (到时候才能从Deal中把从服务器上拿过来的数据拿到xib的控件中来显示)

      在DealCell中:
        @class Deal;
        @interface DealCell:UITableViewCell
        @property (nonatomic, weak) IBOutlet UIImageView *iconView;
        @property (nonatomic, weak) IBOutlet UIImageView *dealNewView;
        @property (nonatomic, weak) IBOutlet UILabel *titleLabel;
        @property (nonatomic, weak) IBOutlet UILabel *buyLabel;
        @property (nonatomic, weak) IBOutlet UILabel *priceLabel;
        @property (nonatomic, strong) Deal *deal;
          (id)dealCell;
          (NSString *) ID;
        #end

      在DealCell中重写setDeal方法(在这个方法中根据模型数据设置cell内部子控件的属性):
        #import “DealCell.h”
        #import “Deal.h”
        @implementation DealCell

        - (void)setDeal:(Deal *)deal
        {
            _deal = deal;
            // 1. 标题
            _titleLabel.text = deal.title;

            // 2. 购买人数
            _buyLabel.text = [NSString stringWithFormat:@“购买:%d”, deal.buy ];

            // 3. 价格
            _priceLabel.text = [NSString stringWithFormat:@“价格:%f”, deal.price ];

            // 4. 头像
            _iconView.image = [UIImage imageNamed:deal.icon];

            // 5. 是否显示最新
            _newView.hidden = ! deal.isNew;
         }

          ()dealCell
        {
            return [[NSBundle mainBundle] loadNibNamed:@“DealCell” owner:nil options:nil ] [0];
         }

          (NSString *) ID
        {
            return @“deal”;
        }
        @end

        提供一个类方法,返回从xib中创建好的cell对象。
        给xib中的cell添加一个重用标识 (比如deal),再提供一个类方法返回一个重用标识。
        提供一个类方法,返回cell的高度。

      3> 使用cell
      设置每一行cell的高度
      利用重用标识去缓存池中取得cell
      如果缓存池中没有cell,创建cell
      传递模型给cell  (这一步是在- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 这个方法中做的)

  方式二、通过代码自定义cell:  
    1> 新建一个UITableViewCell的子类——weiboCell。
    2> 在创建cell的时候 (initWithStyle:reuseIdentifier:方法中) 添加cell内部需要使用的子控件。
    3> 新建一个模型类—— Weibo,增加对应的数据属性。
    4> 给WeiboCell增加一个Weibo模型属性, 在拿到Weibo模型数据的同时设置子控件的属性。
    5> 重写setWeibo:方法,在这里面取出Weibo模型的数据显示到子控件上。

    在Deal中:
        @interface Deal:NSObject
        @property (nonatomic, copy) NSString *icon;
        @property (nonatomic, copy) NSString *title;
        @property (nonatomic, assign) int buy;
        @property (nonatomic, assign) double price;
        @property (nonatomic, assign) BOOL isNew;
        #end

 

一、 封装cell: 1、加载xib文件的两种方式 方式1 ( NewsCell是xib文件的名称 ) NSArray *objects = [[NSBundle m...

一、 封装cell:

1、加载xib文件的两种方式

  <方式1> (NewsCell是xib文件的名称)
    NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"NewsCell" owner:nil options:nil];

  <方式2>
    UINib *nib = [UINib nibWithNibNamed:@"NewsCell" bundle:nil];
    NSArry *objects = [nib instantiateWithOwner:nil options:nil];

 

二、设置cell的高度

  1. 如果每一行的cell高度都是一样,应该用代理方法设置cell的高度
  - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

本文由u赢电竞手机版发布于操作系统,转载请注明出处:iOS常用控件-UITableViewCell操作系统

关键词: iOS-UI常用控件