工作还是比较忙的,在平时也是没时间总结和学习,不过身为一个程序员,如果想要进步,总结和学习还是很重要的~于是有了个每周总结,主要是记录工作上遇到的技术或者小技巧。
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,或者再多种情况的排列组合,可以用位置枚举,根据自身的值去判定所有的情况。