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;
}
#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;
}
相关文章推荐
- 16进制颜色(html颜色值)字符串转为UIColor
- UEditor路径配置
- EasyUI datagrid实现翻页保持checkbox状态
- UI基础_UIView
- UITableView的优化
- UI基础_UICollectionView
- IOS使用NSURLRequest或NSURLSession获取沙河目录下文件数据
- HashMap数据引用时,增加key-value键值对
- iOS - 修改UITextField的placeholder颜色
- 漂亮的servlet-acquire cookies
- 点击进入quick search box,搜索不到通话记录
- iOS开发笔记--Core Bluetooth开发
- mysql interview questions and answers
- 广度优先搜索(BFS+STL queue)实现
- 大话 IQueryable和IEnumberable and IList与Lis t区别
- UILabel、 UIButton、 UIActivityIndicatorView 、UISearchBar(16.5.21)
- Java IO - SequenceInputStream
- iOS开发获取UIDatePicker 的时间与获取时间相差8个小时如何解?
- iOS开发 - 第02篇 - UI进阶 - 04 - QQ聊天界面
- private static final long serialVersionUID