UI學習第08天
最近一段時間自己的學習狀態真的很差,甚至到了一度想要放棄iOS學習的想法,因為一件事你長期堅持做了下去但是一直沒有達到你想要的效果,難免會感到沮喪或者是懈怠有時候真的很想放棄,但心裡又不甘心,自己投入了這麼多的精力去做的事兒,不能就此荒廢。這段時間各種事情在困擾著我,回家過年耽誤了半個月的時間,回來上班快一個月了這一個月的時間裡,每天都是一副要死不活的樣子,想法很多,但是依然只能坐在這方寸之地做著一些沒有意義,沒有營養,甚至是枯燥無味的生活。為了達到我元旦那天晚上立下的目標,我決心要改變現在的這個僵局,改變這種每天不溫不火的狀態,我一定要改變,而且要快。
2016年留給我的時間不多了,今天已經是3月9號了,馬上一年的四分之一就過去了。晚上躺在床上的時候我心裡在問自己,這個月過完你所立下的目標完成了四分之一嗎?難道還能只像學生時代那樣對自己的承諾只是當個屁在放?過了今年的五月份我就已經是年滿22週歲的青年了,早已不再是一個單純,幼稚,對未來充滿著意淫的糊塗蟲,古人說年滿二十即加冠,亦慕聖賢之道,霍去病在我這個年紀就已經是名滿天下的大司馬,被封侯拜相,供人敬仰了。我不求跟這種大氣魄,大毅力的人相比,只求能夠通過自己的勤奮,刻苦獲得自己想要的生活方式,實現自己的一些目標而已。但是如今以現在的狀態來看真的是所差甚遠,你真的要努力。
學習是一件長期不間斷堅持的事情,只有持之以恆才能有所收穫,看你學習的這九個月的時間裡,有很多時間都間斷了學習,三天打魚兩天曬這種做法百害而無一益,外人看你好似勤奮刻苦,可是真相只有你自己知道。
堅持,不斷堅持。
第08天學習筆記:
1、懶載入程式碼複習
model中封裝字典轉模型,載入plist檔案
+ (NSArray *)messagesList
{
//讀取plist
NSString *path = [[NSBundle mainBundle] pathForResource:@"messages" ofType:@"plist"];
NSArray *dicArray = [NSArray arrayWithContentsOfFile:path];
//字典轉模型
NSMutableArray *tmpArray = [NSMutableArray array];
//上一條訊息
CZMessage *preMessage;
for (NSDictionary *dic in dicArray) {
CZMessage *message = [CZMessage messageWithDic:dic];
//獲取上一條訊息
// preMessage = [tmpArray lastObject];
if ([message.time isEqualToString:preMessage.time]) {
//時間相等 隱藏
message.hiddenTime = YES;
}
[tmpArray addObject:message];
//獲取上一條訊息
preMessage = message;
}
return tmpArray;
}
//1 懶載入
- (NSArray *)messageFrames
{
if (_messageFrames == nil) {
//1.1 載入模型資料
NSArray *messages = [CZMessage messagesList];
NSMutableArray *tmpArray = [NSMutableArray array];
//1.2 建立frame模型
for (CZMessage *msg in messages) {
CZMessageFrame *msgFrame = [[CZMessageFrame alloc] init];
msgFrame.message = msg;
[tmpArray addObject:msgFrame];
}
_messageFrames = tmpArray;
}
return _messageFrames;
}
//去掉分割線
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
//不能選中
self.tableView.allowsSelection = NO;
//背景顏色
// self.tableView.backgroundColor = [UIColor lightGrayColor];
self.tableView.backgroundColor = [UIColor colorWithRed:240/255.0 green:240/255.0 blue:240/255.0 alpha:1];
//全0 黑色 全255 白色
// self.tableView.backgroundColor = [UIColor colorWithRed:255/255.0 green:255/255.0 blue:0/255.0 alpha:1];
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
返回有幾行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
返回每一行的cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
4、tableView代理方法複習:
返回行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
返回footer的高度
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
5、重寫屬性的set方法時第一步一定時給屬性重新賦值:
- (void)setMessage:(CZMessage *)message
{
_message = message;
//獲取螢幕的寬度
UIScreen *screen = [UIScreen mainScreen];
CGFloat margin = 10;
//時間的frame
CGFloat timeW = screen.bounds.size.width;
CGFloat timeH = 40;
CGFloat timeX = 0;
CGFloat timeY = 0;
if (!message.isHiddenTime) {
_timeFrame = CGRectMake(timeX, timeY, timeW, timeH);
}
// 計算文字的大小
- (CGSize)sizeWithText:(NSString *)text maxSize:(CGSize)maxSize fontSize:(CGFloat)fontSize
{
return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]} context:nil].size;
}
//設定訊息的背景圖片
if (msg.type == CZMessageTypeSelf) {
// [bgImage resizableImageWithCapInsets:<#(UIEdgeInsets)#>]
// [bgImage resizableImageWithCapInsets:<#(UIEdgeInsets)#> resizingMode:(UIImageResizingMode)]
[self.textView setBackgroundImage:[UIImage resizeImage:@"chat_send_nor"] forState:UIControlStateNormal];
[self.textView setBackgroundImage:[UIImage resizeImage:@"chat_send_press_pic"] forState:UIControlStateHighlighted];
}else{
[self.textView setBackgroundImage:[UIImage resizeImage:@"chat_recive_nor"] forState:UIControlStateNormal];
[self.textView setBackgroundImage:[UIImage resizeImage:@"chat_recive_press_pic"] forState:UIControlStateHighlighted];
}
//縮放圖片(平鋪)
- (UIImage *)resizeImage:(NSString *)imgName
{
UIImage *bgImage = [UIImage imageNamed:imgName];
//縮放圖片
bgImage = [bgImage stretchableImageWithLeftCapWidth:bgImage.size.width / 2 topCapHeight:bgImage.size.height / 2];
return bgImage;
}
相關文章
- semantic UI學習(二)UI
- Swift UI 學習資料SwiftUI
- 前端週刊第62期:學習學習再學習前端
- FPGA 學習之路:verilog學習第5天FPGA
- Java學習第1章Java
- Python學習第6天Python
- 學習UI設計要懂哪些內容?最新UI學習路線圖告訴你UI
- 前端學習(2372):uni-ui庫前端UI
- 學習UI設計能做什麼UI
- 學習UI設計有哪些技巧UI
- Q學習第31天-QThreadQTthread
- 第15.16.17章學習筆記筆記
- 第50天學習打卡(JavaScript)JavaScript
- 前端學習-UI框架學習-Bootstrap5-010-按鈕組前端UI框架boot
- 前端學習-UI框架學習-Bootstrap5-012-進度條前端UI框架boot
- 學好UI設計,需要學習哪些軟體?UI
- 《統計學習方法》第11章習題
- UI學習之後就業前景如何?UI就業
- AngularJS學習日記(五)UI-RouteAngularJSUI
- Element-UI / dom.js 的學習UIJS
- 利用SkyWalking UI的api介面學習GraphQLUIAPI
- 女生適合學習UI設計嗎?UI
- 什麼樣的人適合學習UIUI
- 通過動效學習UI設計UI
- UI設計教程學習分享:APP佈局UIAPP
- UI設計師需要學習什麼呢?UI
- element-ui - 原始碼學習 - 自定義事件UI原始碼事件
- 入門UI設計需學習哪些技能?UI
- Coursera 機器學習 第9章(上) Anomaly Detection 學習筆記機器學習筆記
- 李航《統計學習方法》第2版 第2章課後習題答案
- 碼農如何學設計 - Web UI 設計學習心得WebUI
- SAP UI5 初學者教程的學習目錄UI
- 機器學習第6次作業機器學習
- 機器學習第7次作業機器學習
- 入門UI設計一般要學習多久,學習哪些內容UI
- Flutter學習指南:UI佈局和控制元件FlutterUI控制元件
- 動腦學院UI預習資料-Paint(Xfermode)UIAI
- vue+element UI 學習總結筆記(一)VueUI筆記
- 學習UI設計需要多少美術基礎?UI