iOS一週總結(二)

weixin_34107955發表於2016-08-21

工作還是比較忙的,在平時也是沒時間總結和學習,不過身為一個程式設計師,如果想要進步,總結和學習還是很重要的~於是有了個每週總結,主要是記錄工作上遇到的技術或者小技巧。
1.UIViewContentMode
在做照片預覽的時候,為了讓圖片居中顯示,判斷它的size是width>height來手動計算他的frame。
但其實UIImageView有個contentMode的屬性,可以讓他居中,但是由於是這個屬性是根據image原來的size的。於是乎可以使用image的[+ imageWithCGImage:scale:orientation:]這個方法,改變下從相簿中獲取到的image的size。

2.anchorPoint
之前有個需求要繞著左下角轉圈,於是想到了anchorPoint這個屬性,果然還是成功了,當然設定了他的anchorPoint後frame會改變下,所以可以記住原來的frame,再設定anchorPoint然後再改frame。

3.NSDateComponents
接到個日曆的需求,也接到個朋友圈類似於倒數計時的功能,比如發表於幾分鐘前什麼的。其實很重要的一個東西就是NSDateComponents這個類,他具有year,month,day等屬性。比如獲取時間和當前差多少,先構造個方法,用來比較和當前時間差多少

- (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.位移列舉
之前在群裡聊天的時候,有種登入狀態的處理1.是否登入,2是否vip,或者再多種情況的排列組合,可以用位置列舉,根據自身的值去判定所有的情況。