IOS xib在tableview上的簡單應用(通過xib自定義cell)
阿新 • • 發佈:2017-06-19
make aso eat 常用 last creat path ins div
UITableView是一種常用的UI控件,在實際開發中,由於原生api的局限,自定義UITableViewCell十分重要,自定義cell可以通過代碼,也可以通過xib。
這篇隨筆介紹的是通過xib自定義cell。
首先通過gif介紹如何創建xib。
然後實現代碼部分,要註意的是實現代碼的同時要使代碼與xib相關聯。-如圖
下面便是代碼,一些解釋我在代碼中註釋了。
ViewController.m
// // ViewController.m // CX-Xib在tableView中的簡單應用 // // Created by ma c on 16/3/18. // Copyright ? 2016年 xubaoaichiyu. All rights reserved. // #import "ViewController.h" #import "CXTableViewCell.h" static NSString * identifier = @"cxCellID"; @interface ViewController()<UITableViewDataSource,UITableViewDelegate> @property (nonatomic, strong) UITableView * tableView; @end @implementation ViewController #pragma mark - set_and_get -(UITableView *)tableView{ if (!_tableView) { _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 20, CGRectGetWidth(self.view.frame), 300) style:UITableViewStylePlain]; _tableView.delegate = self; _tableView.dataSource = self; _tableView.rowHeight = 100; [_tableView registerNib:[UINib nibWithNibName:@"tableViewCellXib" bundle:nil] forCellReuseIdentifier:identifier]; } return _tableView; } #pragma mark - life - (void)viewDidLoad { [super viewDidLoad]; [self.view addSubview:self.tableView]; } #pragma mark - deleDate -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 1; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ CXTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:identifier]; cell = [[[UINib nibWithNibName:@"tableViewCellXib" bundle:nil]instantiateWithOwner:self options:nil]lastObject]; return cell; } @end
CXTableViewCell.m
// // CXTableViewCell.m // CX-Xib在tableView中的簡單應用 // // Created by ma c on 16/3/18. // Copyright ? 2016年 xubaoaichiyu. All rights reserved. // #import "CXTableViewCell.h" @interface CXTableViewCell () //這裏要先寫空間,然後把xib上的控件和代碼相連 @property (nonatomic, weak)IBOutlet UILabel * upLabel; @property (nonatomic, weak)IBOutlet UILabel * downLable; @property (nonatomic, weak)IBOutlet UIImageView * CXimageView; @end @implementation CXTableViewCell -(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { //不要把控件add到view上 //add到contentView才是你最正確的選擇 [self.contentView addSubview:self.CXimageView]; [self.contentView addSubview:self.upLabel]; [self.contentView addSubview:self.downLable]; } return self; } //采用xib自定義cell xib上的信息要放在這裏更新 - (void)awakeFromNib { self.CXimageView.image = [UIImage imageNamed:@"caishen.jpg"]; self.upLabel.text = @"恭喜發財"; self.downLable.text = @"財源廣進"; } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; } @end
在實際開發中xib的作用不僅僅局限於此,還用更多的功能等待你的發現。
IOS xib在tableview上的簡單應用(通過xib自定義cell)