工作還是比較忙的,在平時也是沒時間總結(jié)和學(xué)習(xí),不過身為一個程序員,如果想要進步,總結(jié)和學(xué)習(xí)還是很重要的~于是有了個每周總結(jié),主要是記錄工作上遇到的技術(shù)或者小技巧。
1.UIViewContentMode
在做照片預(yù)覽的時候,為了讓圖片居中顯示,判斷它的size是width>height來手動計算他的frame。
但其實UIImageView有個contentMode的屬性,可以讓他居中,但是由于是這個屬性是根據(jù)image原來的size的。于是乎可以使用image的[+ imageWithCGImage:scale:orientation:]這個方法,改變下從相冊中獲取到的image的size。
2.anchorPoint
之前有個需求要繞著左下角轉(zhuǎn)圈,于是想到了anchorPoint這個屬性,果然還是成功了,當(dāng)然設(shè)置了他的anchorPoint后frame會改變下,所以可以記住原來的frame,再設(shè)置anchorPoint然后再改frame。
3.NSDateComponents
接到個日歷的需求,也接到個朋友圈類似于倒計時的功能,比如發(fā)表于幾分鐘前什么的。其實很重要的一個東西就是NSDateComponents這個類,他具有year,month,day等屬性。比如獲取時間和當(dāng)前差多少,先構(gòu)造個方法,用來比較和當(dāng)前時間差多少
- (NSDateComponents *)dateFrom:(NSDate *)from{
NSDate *date = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;
return [calendar components:unit fromDate:from toDate:date options:0];
}
然后模擬下,在viewDidLoad里放入
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *selfDate = [formatter dateFromString:@"2016-03-28 09:30:30"];
NSDateComponents * units = [self dateFrom:selfDate];
NSLog(@"year = %ld, month = %ld, day = %ld, hour = %ld, min = %ld, sec = %ld", (long)units.year, (long)units.month, (long)units.day, (long)units.hour, (long)units.minute, (long)units.second);
感興趣的人可以試試看哦。
4.位移枚舉
之前在群里聊天的時候,有種登錄狀態(tài)的處理1.是否登錄,2是否vip,或者再多種情況的排列組合,可以用位置枚舉,根據(jù)自身的值去判定所有的情況。