iOS常用控件-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
时间: 2024-07-29 04:16:58

iOS常用控件-UITableViewCell的相关文章

iOS常用控件尺寸大集合

元素控件 尺寸(pts) Window(含状态栏) 320 x 480 Status Bar的高度 20 Navigation Bar的高度 44 含Prompt的Navigation Bar的高度 74 Navigation Bar的图标 20×20(透明的png) Tool Bar的高度 44 Tool Bar的图标 20×20(透明的png) Tab Bar的高度 49 Tab Bar的图标 30×30(透明的png) 竖直时键盘的高度 216.252(iOS 5+的中文键盘) 水平时键盘

Xamarin.iOS常用控件总结

1.UIButton控件 btn.SetTitle("test", UIControlState.Normal); UIControlState枚举类型使用: Normal:默认可使用状态 Highlighted:当点击控件事件时控件的状态 Disabled:控件状态不可用 Selected:控件选中时的状态 Application: 使用Application的一个附加控件状态 Reserved: UIButton btn = UIButton.FromType(UIButtonTy

iOS 常用控件的方法属性总结

一 UIVIew 常见属性1.frame 位置和尺寸(以父控件的左上角为原点(0,0))2.center 中点 (以父控件的左上角为原点(0,0))3.bounds 位置和尺寸(以自己的左上角为原点 (0,0))4.transform 形变属性(缩放,旋转)5.backgroundColor 背景颜色6.tag 标识(父控件可以根据这个标识找到对应的子控件,同一个父控件中的子控件不要一样)7. hidden 设置是否要隐藏8.alpha 透明度(0~1);9.opaque 不透明度(0~1);1

iOS常用控件-UIScrollView

一. 常见属性 @property (nonatomic) CGPoint contentOffset;                      //记录UIScrollView滚动的位置 @property (nonatomic) CGSize contentSize;                          // 内容尺寸 (能滚动的范围) @property (nonatomic) UIEdgeInsets contentInset;                // 额外增

iOS 常用控件集合 完整项目

[Swift]高仿 爱范儿3.0 http://www.code4app.com/forum.php?mod=viewthread&tid=10053&page=1&extra=#pid220850 登陆界面+转场结合设计UI地址 http://www.code4app.com/forum.php?mod=viewthread&tid=10024&extra=page%3D1%26filter%3Dsortid%26sortid%3D1 一个基于React Nati

IOS 常用控件的使用

UIButton  //初始化 位置  UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(self.view.frame.size.width-180, 45, 80, 30)];     [btn.layer setCornerRadius:5.0]; //设置矩形四个圆角半径     [btn.layer setBorderWidth:1.0]; //边框宽度     CGColorSpaceRef colorSpace =

iOS常用控件默认高度

参考网址http://www.2cto.com/kf/201307/228020.html

IOS开发基础常用控件简介

在IOS开发中,各类控件完美的解决了开发过程中界面与交互展现的问题,使得IOS产品界面更加灵活实用,IOS常用控件的介绍如下. 1.窗口 UIWindow iPhone的规则是一个窗口,多个视图,窗口是你在app显示出来你看到的最底层,他是固定不变的,基本上可以不怎么理会,但要知道每层是怎样的架构. 2.视图 UIView, 是用户构建界面的基础,所有的控件都是在这个页面上画出来的,你可以把它当成是一个画布,你可以通过UIView增加控件,并利用控件和用户进行交互和传递数据. 窗口和视图是最基本

[IOS_UI控件] IOS代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl

IOS中最常用到的控件UIButton.UISlider.UISwitch.UISegmentedControl通过Xib文件拖动生成非常简单,其实用代码实现也是一样的简单,当然,用代码实现能够掌握到更多的东西. 上图中包涵提到的4种控件,UIButton按钮.UISlider滑块.UISwitch开关.UISegmentedControl分类 首先创建一个名为CodeControls的Empty Application项目 AppDelegate.h和AppDelegate.m文件中和IOS代