IOS界面UI设计6之UITableView团购、微博(二)

团购:xib实现自定义cell

微博:代码实现自定义cell

团购:

(1)自定义xib界面


注意这里的xib的tag的设置,要和cell重用机制中的ID一致。

cell重用代码:加载xib

+ (instancetype)cellWithTableView:(UITableView *)tableView

{

    static NSString *ID = @"xxxxx";

    MJTgCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

    if (cell == nil) {

        cell = [[[NSBundle mainBundle] loadNibNamed:@"xibname" owner:nil options:nil] lastObject];

    }

    return cell;

}


(2)加载数据模型:

这里可以定义一个类,h文件中存放团购信息的所有成员变量。团购信息都存放到字典中,组成一个个的键值对。

针对每一个团购数据(一个字典数据)生成一个类的实例:

+ (instancetype)tgWithDict:(NSDictionary *)dict

{

    return [[self alloc] initWithDict:dict];

}


- (instancetype)initWithDict:(NSDictionary *)dict

{

    if (self = [super init]) {

        [self setValuesForKeysWithDictionary:dict];

    }

    return self;

}

这里使用的KVC键值观察。

(3)刷新新的团购信息

更新数据模型。重新加载UITableView

微博:代码创建cell

(1)利用代码创建cell:UITableViewCell

重写初始化方法:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

{

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

    if (self) {

        添加各种视图到

self.contentView上

}

(2)更新cell的数据和位置

这里有一个文字尺寸计算方法:

- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize

{

    NSDictionary *attrs = @{NSFontAttributeName : font};

    return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;

}

(3)数据模型,除了基本的元素之外,还有各个元素的位置信息。其它的和团购信息类似。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值