ios学习笔记-3

iOS开发笔记-3

关于Masonry包

#import <Masonry.h>
不是#import "Masonry.h"

设置section之间的背景颜色

1
2
3
4
- (void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section {
//设置section之间的背景颜色
view.tintColor = kThemeHomePageBackgroundColor;
}

cell.accessoryView 无法获取

在写cell的页面的时候,使用了系统自带右侧的箭头的cell格式:
cell.accessoryType=UITableViewCellAccessoryNone;
然后如下图所示,想在右侧箭头左边加label,在使用Masonry相对布局获取accessoryView的mas_left的时候获取不到,其他属性也获取不到。不知道什么原因。准备去stackoverflow问一下,如果得到了回答就把答案更新到这里。

本地存取

  • 取:
    [[NSUserDefaults standardUserDefaults] boolForKey:bool键];
    [[NSUserDefaults standardUserDefaults] stringForKey:键];
  • 存:
    [[NSUserDefaults standardUserDefaults] setBool:bool值 forKey:bool键];
    [[NSUserDefaults standardUserDefaults] setValue:值 forKey:键];

设置button颜色

不是用[button.title.label setTextColor...];
而是用[button setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];

设置让tableviewL里面的某个cell不可选中

cell.selectionStyle = NO;

数据库操作时遇到的问题

之前写数据库的时候,新建了一个表,可以正常增删改查。后来觉得表的某一列的列名起的不好,于是在代码中把列名改了,然后就不能正常操作数据库了。这时候应该去sqlite中把表删除(或者直接卸载掉APP)然后让程序重新建表就可以了。

截取字符串

1
2
3
4
NSLog(@"%@",[str substringFromIndex:2]);//从指定的字符串开始到尾部
NSLog(@"%@",[str substringToIndex:5]);//是开始位置截取到指定位置但是不包含指定位置
NSLog(@"%@",[str substringWithRange:NSMakeRange(2, 3)]);//按照给定的NSRang字符串截取自串的宽度和位置
NSArray *arry=[str componentsSeparatedByString:@"="];//字符串分割

显示网络图片

1
2
3
4
5
6
7
8
9
10
11
12
+ (UIImage *)loadImage
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:[[documentsDirectory stringByAppendingString:@"/image"] stringByAppendingString:@"/default.png"]];
if (image) {
return image;
}else{
return [UIImage imageNamed:@"image"];
}
return image;
}

iOS时间戳

其实项目并没有用到,就直接抄的网上的,回头好好研究~

1
2
3
4
5
6
//设置时间显示格式:  
NSString* timeStr = @"2011-01-26 17:40:50";
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; //设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
1
2
3
4
5
6
//设置时区
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
[formatter setTimeZone:timeZone];
NSDate* date = [formatter dateFromString:timeStr]; //将字符串按formatter转成nsdate
NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式
NSString *nowtimeStr = [formatter stringFromDate:datenow];//将nsdate按formatter格式转成nsstring
1
2
3
//时间转时间戳的方法:  
NSString *timeSp = [NSString stringWithFormat:@"%d", (long)[datenow timeIntervalSince1970]];
NSLog(@"timeSp:%@",timeSp); //时间戳的值
1
2
3
4
5
6
7
8
9
10
11
12
13
//时间戳转时间的方法  
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:1296035591];
NSLog(@"1296035591 = %@",confromTimesp);
NSString *confromTimespStr = [formatter stringFromDate:confromTimesp];
NSLog(@"confromTimespStr = %@",confromTimespStr);
//时间戳转时间的方法:
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"yyyyMMddHHMMss"];
NSDate *date = [formatter dateFromString:@"1283376197"];
NSLog(@"date1:%@",date);
[formatter release];