聊天對話

#import "AppDelegate.h"

.h

//創(chuàng)建頁面視圖

ViewController *vc = [[ViewController alloc]init];

//創(chuàng)建導(dǎo)航器對象

UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc];

//修改窗口根視圖

self.window.rootViewController = nav;

#import "ViewController.h"

.h

#import "Message.h"

#import "MyTableViewCell.h"


<UITableViewDataSource,UITableViewDelegate>

{

//定義數(shù)組燃箭、表格钉答、底部視圖

NSMutableArray *array;

UITableView *tableview;

UIView *bottomview;

}

[super viewDidLoad];

//設(shè)置導(dǎo)航標(biāo)題

self.navigationItem.title = @"周宇航";

//設(shè)置背景顏色

self.view.backgroundColor = [UIColor whiteColor];

//創(chuàng)建消息對象1并初始化

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

m1.imageName = @"1 14.jpg";

m1.message = @"謝謝了";

m1.backgroudImageName = @"2 6.jpg";

//創(chuàng)建消息對象2并初始化

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

m2.imageName = @"1 18.jpg";

m2.message = @"客氣";

m2.backgroudImageName = @"2 7.png";

m2.isMyWords = YES;

//初始化數(shù)組

array = [NSMutableArray arrayWithObjects:m1,m2, nil];

//創(chuàng)建表格

tableview = [[UITableView alloc]initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height-444)];

//設(shè)置代理

tableview.dataSource = self;

tableview.delegate = self;

//加入當(dāng)前視圖

[self.view addSubview:tableview];

//創(chuàng)建底部視圖

bottomview = [[UIView alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-88, self.view.frame.size.width, 88)];

//加入當(dāng)前視圖

[self.view addSubview:bottomview];

//創(chuàng)建滾動文本框

UITextView *textview = [[UITextView alloc]initWithFrame:CGRectMake(10, 0, self.view.frame.size.width-20, 44)];

//設(shè)置代理

textview.delegate = self;

//設(shè)置背景顏色

textview.backgroundColor = [UIColor cyanColor];

//設(shè)置鍵盤類型

textview.returnKeyType = UIReturnKeySend;

//加入底部視圖

[bottomview addSubview:textview];

//創(chuàng)建工具欄

UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(10, 44, self.view.frame.size.width-20, 44)];

//創(chuàng)建按鈕1

UIBarButtonItem *item1 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"3.png"] style:UIBarButtonItemStylePlain target:self action:@selector(toolbarItemClicked:)];

item1.tag = 10;

//創(chuàng)建按鈕2

UIBarButtonItem *item2 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"4.png"] style:UIBarButtonItemStylePlain target:self action:@selector(toolbarItemClicked:)];

item2.tag = 11;

//創(chuàng)建按鈕3

UIBarButtonItem *item3 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"5.png"] style:UIBarButtonItemStylePlain target:self action:@selector(toolbarItemClicked:)];

item3.tag = 12;

//創(chuàng)建按鈕4

UIBarButtonItem *item4 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"6.png"] style:UIBarButtonItemStylePlain target:self action:@selector(toolbarItemClicked:)];

item4.tag = 13;

//創(chuàng)建按鈕5

UIBarButtonItem *item5 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"4.png"] style:UIBarButtonItemStylePlain target:self action:@selector(toolbarItemClicked:)];

item5.tag = 14;

//創(chuàng)建按鈕6

UIBarButtonItem *item6 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"3.png"] style:UIBarButtonItemStylePlain target:self action:@selector(toolbarItemClicked:)];

item6.tag = 15;

//添加按鈕到導(dǎo)航條

self.navigationItem.rightBarButtonItems = @[item5,item6];

//加入工具條

toolbar.items = @[item1,item2,item3,item4];

//加入底部視圖

[bottomview addSubview:toolbar];

}

#pragma mark UITableViewDataSource

//設(shè)置行數(shù)

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

{

return array.count;

}

//設(shè)置單元格內(nèi)容

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

{

//創(chuàng)建靜態(tài)字符串

static NSString *string = @"Cell";

//根據(jù)字符串查找可復(fù)用單元格

MyTableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:string];

//創(chuàng)建復(fù)用池

if (!cell) {

cell = [[MyTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:string];

}

//獲取消息對象

Message *m = array[indexPath.row];

//設(shè)置頭像視圖

cell.imageview.image = [UIImage imageNamed:m.imageName];

//設(shè)置消息

cell.label.text = m.message;

//設(shè)置消息背景視圖

cell.backgroudImageView.image = [UIImage imageNamed:m.backgroudImageName];

if (m.isMyWords == YES) {

cell.imageview.frame = CGRectMake(self.view.frame.size.width-44, 0, 34, 34);

cell.backgroudImageView.frame = CGRectMake(self.view.frame.size.width-130, 0, 80, 34);

}

return cell;

}

#pragma mark UITextViewDelegate

//設(shè)置點擊滑動文本框響應(yīng)方法

- (void)textViewDidBeginEditing:(UITextView *)textView

{

//開始動畫

[UIView beginAnimations:@"up" context:nil];

//設(shè)置持續(xù)時間

[UIView setAnimationDuration:0.25];

//設(shè)置視圖位置

[bottomview setFrame:CGRectMake(0, self.view.frame.size.height-380, self.view.frame.size.width, 380)];

//結(jié)束動畫

[UIView commitAnimations];

}

//設(shè)置編輯響應(yīng)方法

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

{

//換行的時候

if ([text? isEqualToString: @"\n"])

{

//設(shè)置鍵盤收回

[self.view endEditing:YES];

//開始動畫

[UIView beginAnimations:@"down" context:nil];

//設(shè)置持續(xù)時間

[UIView setAnimationDuration:0.25];

//設(shè)置視圖位置

[bottomview setFrame:CGRectMake(0, self.view.frame.size.height-88, self.view.frame.size.width, 88)];

//結(jié)束動畫

[UIView commitAnimations];

//消息非空

if (textView.text.length != 0) {

//創(chuàng)建消息對象

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

//給消息賦值

m.imageName = @"1 18.jpg";

m.message = textView.text;

m.backgroudImageName = @"2 7.png";

m.isMyWords = YES;

//加入數(shù)組

[array addObject:m];

//刷新表格

[tableview reloadData];

//顯示表格底部

[tableview scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:array.count-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];

textView.text = nil;

}

return NO;

}else{

return YES;

}

}

//設(shè)置工具條按鈕響應(yīng)方法

- (void)toolbarItemClicked:(UIBarButtonItem *)item

{

NSLog(@"%ld",item.tag);

}

創(chuàng)建MyTableViewCell繼承UITableViewCell

.h

//定義屬性頭像視圖肉微、背景圖片視圖、標(biāo)簽

@property (nonatomic,strong)UIImageView *imageview;

@property (nonatomic,strong)UIImageView *backgroudImageView;

@property (nonatomic,strong)UILabel *label;

.m

//重寫初始化方法

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

{

if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {

[self addSubview:self.imageview];

[self addSubview:self.backgroudImageView];

}

return self;

}

//初始化頭像視圖

- (UIImageView *)imageview

{

if (!_imageview) {

_imageview = [[UIImageView alloc]initWithFrame:CGRectMake(10, 5, 34, 34)];

//設(shè)置半徑

_imageview.layer.cornerRadius = 17;

//設(shè)置邊框模式

_imageview.layer.masksToBounds = YES;

}

return _imageview;

}

//初始化背景圖片視圖

- (UIImageView *)backgroudImageView

{

if (!_backgroudImageView) {

_backgroudImageView = [[UIImageView alloc]initWithFrame:CGRectMake(60, 5, 80, 34)];

//設(shè)置半徑

_backgroudImageView.layer.cornerRadius = 10;

//設(shè)置邊框模式

_backgroudImageView.layer.masksToBounds = YES;

//創(chuàng)建標(biāo)簽

_label = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 60, 24)];

//加入圖片視圖

[self.backgroudImageView addSubview:self.label];

}

return _backgroudImageView;

}

創(chuàng)建Message繼承NSObject

.h

//定義屬性頭像京腥、消息、背景圖片鼻百、發(fā)送人

@property (nonatomic,strong)NSString *imageName;

@property (nonatomic,strong)NSString *message;

@property (nonatomic,strong)NSString *backgroudImageName;

@property (nonatomic,assign)BOOL isMyWords;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绞旅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子温艇,更是在濱河造成了極大的恐慌因悲,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勺爱,死亡現(xiàn)場離奇詭異晃琳,居然都是意外死亡,警方通過查閱死者的電腦和手機琐鲁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門卫旱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人围段,你說我怎么就攤上這事顾翼。” “怎么了奈泪?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵适贸,是天一觀的道長。 經(jīng)常有香客問我涝桅,道長拜姿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任冯遂,我火速辦了婚禮蕊肥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛤肌。我一直安慰自己壁却,他們只是感情好批狱,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著儒洛,像睡著了一般精耐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上琅锻,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天卦停,我揣著相機與錄音,去河邊找鬼恼蓬。 笑死惊完,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的处硬。 我是一名探鬼主播小槐,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荷辕!你這毒婦竟也來了凿跳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤疮方,失蹤者是張志新(化名)和其女友劉穎控嗜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骡显,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡疆栏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惫谤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壁顶。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖溜歪,靈堂內(nèi)的尸體忽然破棺而出若专,到底是詐尸還是另有隱情,我是刑警寧澤蝴猪,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布富岳,位于F島的核電站,受9級特大地震影響拯腮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚁飒,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一动壤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧淮逻,春花似錦琼懊、人聲如沸阁簸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽启妹。三九已至,卻和暖如春醉旦,著一層夾襖步出監(jiān)牢的瞬間饶米,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工车胡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留檬输,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓匈棘,卻偏偏與公主長得像丧慈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子主卫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容