自定义cell

自定义cell

import “MainViewController.h”

import “MyCell.h”

import “BetterCell.h”

import “Student.h”

define WIDTH self.view.frame.size.width

define HEIGHT self.view.frame.size.height

@interface MainViewController ()

import “MyCell.h”

define WIDTH self.contentView.frame.size.width

define HEIGHT self.contentView.frame.size.height

@implementation MyCell

pragma mark 重写cell初始化方法

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self=[super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// 完成对属性视图的创建,但是一般创建之后不给属性视图frame
[self createView];
}
return self;
}

pragma mark 属性视图进行创建

-(void)createView{
// 先创建左imageView
self.leftImageView=[[UIImageView alloc] init];
self.leftImageView.backgroundColor=[UIColor redColor];
// 添加
// cell上有一个专门用来显示空间的视图,叫contentView,我们把视图就放到contentView上进行显示
[self.contentView addSubview:self.leftImageView];
[self.leftImageView release];

// 上label
self.upLabel=[[UILabel alloc] init];
self.upLabel.backgroundColor=[UIColor orangeColor];
[self.contentView addSubview:self.upLabel];
self.upLabel.textColor=[UIColor blackColor];
self.upLabel.font=[UIFont systemFontOfSize:20];
self.upLabel.layer.borderWidth=1;
self.upLabel.layer.cornerRadius=10;
self.upLabel.layer.masksToBounds=YES;
self.upLabel.textAlignment=NSTextAlignmentCenter;
[self.upLabel release];

// 下label
self.downLabel=[[UILabel alloc] init];
self.downLabel.backgroundColor=[UIColor greenColor];
[self.contentView addSubview:self.downLabel];
self.downLabel.textColor=[UIColor blackColor];
self.downLabel.font=[UIFont systemFontOfSize:20];
self.downLabel.layer.borderWidth=1;
self.downLabel.layer.cornerRadius=10;
self.upLabel.layer.masksToBounds=YES;
self.downLabel.textAlignment=NSTextAlignmentCenter;
[self.downLabel release];

// 右imageView
self.rightImageView=[[UIImageView alloc] init];
self.rightImageView.backgroundColor=[UIColor yellowColor];
[self.contentView addSubview:self.rightImageView];
[self.rightImageView release];

}

pragma mark 这个方法是cell显示之前走得最后的一个方法,一般会在这个方法里设置所有的属性视图的大小和尺寸,这个方法会用在图片文字的自适应的设置上

-(void)layoutSubviews{
// 重写了父类的layoutSubviews方法,如果想要这个方法发挥正常的功能,别忘了[super layoutSubviews]
[super layoutSubviews];
// 对所有属性视图的位置和大小设置
self.leftImageView.frame=CGRectMake(0,0,WIDTH/3,HEIGHT);
self.upLabel.frame=CGRectMake(WIDTH/3,0,WIDTH/3,HEIGHT/2);
self.downLabel.frame=CGRectMake(WIDTH/3,HEIGHT/2,WIDTH/3,HEIGHT/2);
self.rightImageView.frame=CGRectMake(WIDTH/3*2,0,WIDTH/3,HEIGHT);
}

  • (void)dealloc
    {
    [_downLabel release];
    [_upLabel release];
    [_leftImageView release];
    [_rightImageView release];
    [super dealloc];
    }

  • (void)awakeFromNib {
    // Initialization code
    }

  • (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
    }

import “BetterCell.h”

define WIDTH self.contentView.frame.size.width

define HEIGHT self.contentView.frame.size.height

@implementation BetterCell

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self=[super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
[self createView];
}
return self;
}

-(void)createView{
self.oneImageView=[[UIImageView alloc] init];
[self.contentView addSubview:self.oneImageView];
[self.oneImageView release];

self.twoImageView=[[UIImageView alloc] init];
[self.contentView addSubview:self.twoImageView];
[self.twoImageView release];

self.threeImageView=[[UIImageView alloc] init];
[self.contentView addSubview:self.threeImageView];
[self.threeImageView release];

self.leftLabel=[[UILabel alloc] init];
[self.contentView addSubview:self.leftLabel];
self.leftLabel.layer.borderWidth=1;
self.leftLabel.layer.cornerRadius=10;
self.leftLabel.layer.masksToBounds=YES;
self.leftLabel.font=[UIFont systemFontOfSize:20];
self.leftLabel.textAlignment=NSTextAlignmentCenter;
self.leftLabel.backgroundColor=[UIColor redColor];
[self.leftLabel release];

self.rightLabel=[[UILabel alloc] init];
[self.contentView addSubview:self.rightLabel];
self.rightLabel.layer.borderWidth=1;
self.rightLabel.layer.cornerRadius=10;
self.rightLabel.layer.masksToBounds=YES;
self.rightLabel.font=[UIFont systemFontOfSize:20];
self.rightLabel.textAlignment=NSTextAlignmentCenter;
self.rightLabel.backgroundColor=[UIColor greenColor];
[self.rightLabel release];

}

-(void)layoutSubviews{
self.oneImageView.frame=CGRectMake(0,0,WIDTH/3,HEIGHT/2);
self.twoImageView.frame=CGRectMake(WIDTH/3, 0, WIDTH/3, HEIGHT/2);
self.threeImageView.frame=CGRectMake(WIDTH/3*2, 0, WIDTH/3, HEIGHT/2);
self.leftLabel.frame=CGRectMake(0, HEIGHT/2, WIDTH/2, HEIGHT/2);
self.rightLabel.frame=CGRectMake(WIDTH/2, HEIGHT/2, WIDTH/2, HEIGHT/2);
}

  • (void)dealloc
    {
    [_leftLabel release];
    [_rightLabel release];
    [_oneImageView release];
    [_threeImageView release];
    [_twoImageView release];
    [super dealloc];
    }

@end

Student

import

import “Student.h”

@implementation Student

  • (void)dealloc
    {
    [_hobby release];
    [_name release];
    [_sex release];
    [_phone release];
    [super dealloc];
    }

// 如果使用KVC,这个方法一定要写,避免了因为Key和属性名不匹配造成不必要的崩溃!使用KVC进行筛选,写属性的都是我想要的属性,走这个方法的不是我要的
-(void)setValue:(id)value forUndefinedKey:(NSString *)key{

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值