您的位置:首页 > 产品设计 > UI/UE

UITableableView自定义cell

2016-05-21 16:24 561 查看
#import "ViewController.h"

#import "Message.h"

@interface
ViewController ()

@property (weak,
nonatomic) IBOutlet
UITableView *tableView;

@property (weak,
nonatomic) IBOutlet
UITextField *textField;

@end

NSString *myName = @"jacky";

@implementation ViewController

- (IBAction)sendMessage:(UIButton *)sender

{

Message *msg = [Message
new];

msg.UserName =myName;

msg.faceName =
@"f3";

msg.message =
self.textField.text;

msg.date = [NSDate
date];

[self.messages
addObject:msg];

Message *msg2 = [Message
new];

msg2.UserName =
@"Chris";

msg2.message =
@"呵呵";

msg2.faceName = [NSString
stringWithFormat:@"f%d",arc4random_uniform(9)];

msg2.date = [NSDate
date];

[self.messages
addObject:msg2];

[self.tableView
reloadData];

}

- (void)viewDidLoad

{

[super
viewDidLoad];

self.tableView.dataSource =
self;

self.tableView.delegate =
self;

self.textField.delegate =
self;

//设置tableview的属性

self.tableView.rowHeight =
120;

self.tableView.separatorStyle
= UITableViewCellSeparatorStyleNone;

self.messages = [[NSMutableArray
alloc]init];

Message *msg = [[Message
alloc]init];

msg.UserName =
@"Chris";

msg.message =
@"一起去打球吗?";

msg.faceName = [NSString
stringWithFormat:@"f%d",arc4random_uniform(9)];

msg.date = [NSDate
date];

[self.messages
addObject:msg];

}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

return
self.messages.count;

}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath

{

NSString *cellID;

Message *msg =
self.messages[indexPath.row];

if ([msg.UserName
isEqualToString:myName])

{

cellID = @"myCell";

}

else

{

cellID = @"msgCell";

}

//1、从重用对象池中找不用的cell对象

UITableViewCell *cell =[self.tableView
dequeueReusableCellWithIdentifier:cellID];

//2、如果没找到就自己创建

if (cell ==nil)

{

//从xib文件中加载自定义cell

if ([msg.UserName
isEqualToString:myName])

{

NSBundle *bundle = [NSBundle
mainBundle];

cell =[bundle loadNibNamed:@"msgCell"
owner:nil
options:nil][1];

}

else

{

NSBundle *bundle = [NSBundle
mainBundle];

cell =[bundle loadNibNamed:@"msgCell"
owner:nil
options:nil][0];

}

}

//3、设置cell的属性

UIImageView *imageView = [cell
viewWithTag:1];

[imageView setImage:[UIImage
imageNamed:msg.faceName]];

if (![msg.UserName
isEqualToString:myName])

{

UILabel *nameLabel = [cell
viewWithTag:2];

nameLabel.text = msg.UserName;

}

UIButton *button = [cell
viewWithTag:3];

[button setTitle:msg.message
forState:UIControlStateNormal];

UILabel *dataLabel = [cell
viewWithTag:4];

NSDateFormatter *formatter = [[NSDateFormatter
alloc]init];

formatter.dateFormat=
@"HH:mm:ss";

dataLabel.text = [formatter
stringFromDate:msg.date];

return cell;

}

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

[textField resignFirstResponder];

return
YES;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: