1.NSDate 取年月日等等
最近項目中要取到當前時間的年月日等等數(shù)據(jù),搜遍終得一個方法如下:
- (void)setDateArray
{
NSDate *dateNow;
for (int i = 0; i<7; i++) {
dateNow = [NSDate dateWithTimeIntervalSinceNow:i*24*60*60];
NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [[NSDateComponents alloc]init];
NSInteger unitFlags = NSYearCalendarUnit|NSDayCalendarUnit|NSWeekdayCalendarUnit|NSHourCalendarUnit |NSMonthCalendarUnit;
comps = [calendar components:unitFlags fromDate:dateNow];
long day = [comps day];
NSUInteger month = [comps month];
NSString *dateStr = [NSString stringWithFormat:@"%ld月%ld日",month,day];
[_dateArray addObject:dateStr];
}
}
輸出_dataArray 可得
**12****月****14****日**
**12****月****15****日**
**12****月****16****日**
**12****月****17****日**
**12****月****18****日**
**12****月****19****日**
**12****月****20****日**
- xcode 7 tableView的一些小問題
tableView 在xcode7 下會有一些分割線無法被隱藏
解決辦法:
-(void)layoutSubviews{
[super layoutSubviews];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
- reloadData 刷新失效
[tableView reloadData]
無效女淑,有一行 cell 明明改變了但是刷新不出來。
解決的方法是捉捅,注釋 [tableView reloadData] 佛掖,改用局部刷新:
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
4.測試 bug 的工具
bugtags 用了不后悔
/**
* 判斷一個時間段有幾天幾個小時幾分鐘等等
*
* @param startDate 開始日期
* @param endDate 結束時間
*
* @return 返回兩個時間段中間差幾個小時
*/
+ (NSString *)getStartTime:(NSString *)startDate endTime:(NSString *)endDate
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"HH:mm"];
NSDate *date1 = [dateFormatter dateFromString:startDate];
NSDate *date2 = [dateFormatter dateFromString:endDate];
NSTimeInterval time = [date2 timeIntervalSinceDate:date1];
float hours = (float)time/3600;
return [NSString stringWithFormat:@"%.2f",hours];
}
/**
* 判斷一個時間段內有幾個星期幾 (比如判斷1月29號到2月12號有幾個星期五)
*
* @param startDate 開始時間
* @param endDate 結束時間
* @param weekStr 判斷的星期幾
*
* @return nsstring 是個數(shù)
*/
- (NSString *)featureWeekdayWithDate:(NSString *)startDate endStart:(NSString *)endDate weekStr:(NSString *)weekStr
{
NSInteger dayIndex = 0;
if ([weekStr isEqualToString:@"星期天"]) {
dayIndex = 7;
}
if ([weekStr isEqualToString:@"星期一"]) {
dayIndex = 1;
}
if ([weekStr isEqualToString:@"星期二"]) {
dayIndex = 2;
}
if ([weekStr isEqualToString:@"星期三"]) {
dayIndex = 3;
}
if ([weekStr isEqualToString:@"星期四"]) {
dayIndex = 4;
}
if ([weekStr isEqualToString:@"星期五"]) {
dayIndex = 5;
}
if ([weekStr isEqualToString:@"星期六"]) {
dayIndex = 6;
}
long days = [[MyUtil getStartTime:startDate endTime:endDate] integerValue];
days++;
// 將總天數(shù) 換算為 以 周 計算(假如 相差10天,其實就是等于 相差 1周零3天忽肛,只需要取3天,更加方便計算)
NSInteger fullIndex = days>=7 ? days/7 : 0;
long day = days >= 7 ? days % 7 : days;
NSInteger flag = 0;
for (int i = 0; i< day; i++) {
NSDate *date = [NSDate dateWithString:startDate format:@"yyyy-MM-dd"];
long week = ([date weekday]+i)%7;
switch (week) {
case 1:
if (dayIndex == 7) {
flag++;
}
break;
case 2:
if (dayIndex == 1) {
flag++;
}
break;
case 3:
if (dayIndex == 2) {
flag++;
}
break;
case 4:
if (dayIndex == 3) {
flag++;
}
break;
case 5:
if (dayIndex == 4) {
flag++;
}
break;
case 6:
if (dayIndex == 5) {
flag++;
}
break;
case 7:
if (dayIndex == 6) {
flag++;
}
break;
default:
break;
}
}
return [NSString stringWithFormat:@"%d",fullIndex+flag];
}
設置一個 UIView 的背景圖片:推薦使用
NSString *path = [[NSBundlemainBundle]pathForResource:@"image"ofType:@"jpg"];
UIImage *image = [UIImageimageWithContentsOfFile:path];
self.view.layer.contents = (id)image.CGImage;
圖片緩存
根據(jù)是否將創(chuàng)建好的對象緩存入系統(tǒng)內存烂斋,有兩類創(chuàng)建UIImage對象的方法可選:
緩存:+ imageNamed:屹逛,只需傳入文件名.擴展名(可選)即可础废。
不緩存:+ imageWithContentsOfFile:,必須傳入文件的全名(全路徑+文件名)罕模。
Assets.xcassets中的圖片資源只能通過imageNamed:方法加載评腺,通過NSBundle的pathForResource:ofType:無法獲得圖片路徑。因此淑掌,Assets.xcassets只適合存放系統(tǒng)常用的蒿讥,占用內存小的圖片資源。
imageNamed:方法同樣可以加載根目錄中的圖片資源抛腕。
要想利用imageWithContentsOfFile:方法以不緩存的形式加載圖片芋绸,必須將圖片資源放置在根目錄中。