OC零散知识点
程序员文章站
2024-02-28 09:55:28
...
判断日期是否是昨天(Nsdate对象方法)
- (BOOL)isYesterday {
//生成只有年月日的日期对象
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy-MM-dd";
NSString *selfString = [fmt stringFromDate:self];
NSDate *selfDate = [fmt dateFromString:selfString];
NSString *nowString = [fmt stringFromDate:[NSDate date]];
NSDate *nowDate = [fmt dateFromString:nowString];
//比较差距
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSDateComponents *cmps = [calendar components:unit fromDate:selfDate toDate:nowDate options:0];
return cmps.year == 0
&& cmps.month == 0
&& cmps.day == 1;
}
图片拉伸方法
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight
这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。
根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸。
注意:可拉伸的范围都是距离leftCapWidth后的1竖排像素,和距离topCapHeight后的1横排像素。
参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。
注意:只是对一个像素进行复制到一定宽度。而图像后面的剩余像素也不会被拉伸。
控制代码在整个软件生命周期中只运行一次
把下面代码中的UD换成[NSUserDefaults standardUserDefaults]就行了,也可以像我一样写个宏(#define UD [NSUserDefaults standardUserDefaults])
if (![UD boolForKey:@"everLaunched"]) {
[UD setBool:YES forKey:@"everLaunched"];
[UD setBool:YES forKey:@"firstLaunch"];
}
else{
[UD setBool:NO forKey:@"firstLaunch"];
}
if ([UD boolForKey:@"firstLaunch"]) {
//第一次运行,以游客登录
do........
}
根据UIColor生成对于UIImage
- (UIImage *)imageWithColor
{
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [self CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
将数组按目前的顺序反过来排列
arr = [[arr reverseObjectEnumerator] allObjects];
取数组中的最大值(数组内容是NSString也可以使用)
NSNumber* max = [newCountArray valueForKeyPath:@"@max.intValue"];
将数组按从小到大排列(数组内容是NSString也可以使用)
newCountArray = [newCountArray sortedArrayUsingSelector:@selector(compare:)];
让tableview滚动到第一行
[mainFolioTB setContentOffset:CGPointMake(0,0) animated:NO];