iOS 开发 iOS学习

自定义高等Cell之frame

2016-09-02  本文已影响0人  vip4iPhonr

    //在这个方法中添加所有的子控件
        -(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
            {
                if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
                    // ......
                }
                return self;
            }
- **1.2 重写`-layoutSubviews`方法**
    >- 一定要调用`[super layoutSubviews]`
    >- 在这个方法中计算和设置所有子控件的frame
```objc
//在这个方法中计算所有子控件的frame
    -(void)layoutSubviews
    {
        [super layoutSubviews];
        // ......
    }
```
- **1.3 需要提供一个模型属性,重写模型的set方法,在这个方法中设置模型数据到子控件**
    >- 在IZGrouponCell.h文件中提供一个模型属性,比如IZGroupon模型
@class IZGroupon;
@interface IZGrouponCell : UITableViewCell
/** 团购模型数据 */
@property (nonatomic, strong) IZGroupon *groupon;
@end
    >-  在IZGrouponCell.m中重写模型属性的set方法
-(void)setGroupon:(IZGroupon *)groupon
{
    _groupon = groupon;
        // .......
}

[self.tableView registerClass:[IZGrouponCell class] forCellReuseIdentifier:ID];

    - **给cell传递模型数据**

    ```objc
        - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
        {
            // 访问缓存池
            IZGrouponCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

            // 设置数据(传递模型数据)
            cell.groupon = self.groupon[indexPath.row];

            return cell;
        }
上一篇下一篇

猜你喜欢

热点阅读