在 iOS 开发中我们经常会用到但是容易遗忘的代码,下面做一个总结,以备忘记的时候回来翻看:
一、在 APPDelegate 中,需要手写代码对首页的控制器进行导航栏推出的时候的代码片段:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 更改window的颜色为白色
self.window.backgroundColor = [UIColor whiteColor];
/*
// 需要跳转控制器的对象
MainViewController *mainVC = [[MainViewController alloc] init];
// 让MainViewController成为导航控制器的根视图
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:mainVC];
*/
// 以上两句可以合成下面一句完成
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[MainViewController alloc] init]];
// 让导航控制器成为window的根视图
self.window.rootViewController = nav;
// 让window成为主窗口并可见
[self.window makeKeyAndVisible];
return YES;
}
二、日期和字符串之间的转换
// 从服务器段获取到的字符串转化为时间如:转化 1416882712000
NSString *dateString = @"1416882712000";
// 先把字符串转换为int形式,如果是毫秒需要把转化后的int值除以1000,是秒的话则不需要除
NSInteger timeInterval = [dateString integerValue] / 1000;
// 进行日期的计算,以1970年为基准
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSLog(@"%@",date);
// 以上输出为: 2014-11-25 02:31:52 +0000
// 进行日期的格式化输出
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// 需要输出的日期格式:如:yyyy-MM-dd HH:mm:ss 或 yyyy年MM月dd日 HH时mm分ss秒
// dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
// NSString *dateStr = [dateFormatter stringFromDate:date];
// NSLog(@"%@",dateStr);
// 以上输出为: 2014-11-25 02:31:52
// 更换日期格式则输出:2014年11月25日 10时31分52秒
dateFormatter.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒";
NSString *dateStr = [dateFormatter stringFromDate:date];
NSLog(@"%@",dateStr);
三、日期字符串转换为日期
// 将一个字符串如“20110826134106”转化为任意的日期时间格式
NSString *string = @"20110826134106";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:string];// 日期类型
NSLog(@"date = %@",date);
// 输出结果:date = 2011-08-26 05:41:06 +0000
// 以上输出的会比需要输出的少8小时
// NSInteger timeInterval = 8 * 60 * 60;
// NSDate *date1 = [NSDate dateWithTimeInterval:timeInterval sinceDate:date];// 日期类型
// NSLog(@"date1 = %@",date1);
// 输出结果: date1 = 2011-08-26 13:41:06 +0000
// 以上输出的就为我们需要的日期时间
// 直接转换字符串就不需要加8小时的时间间隔
// formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
// NSString *targetDateString = [formatter stringFromDate:date];// 字符串类型
// NSLog(@"targetDateString = %@",targetDateString);
// 输出结果:targetDateString = 2011-08-26 13:41:06
NSDateFormatter *outputFormatter= [[NSDateFormatter alloc] init];
[outputFormatter setLocale:[NSLocale currentLocale]];
[outputFormatter setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];
NSString *str= [outputFormatter stringFromDate:date];
NSLog(@"testDate:%@",str);
日期格式引用
格式化参数如下:
G: 公元时代,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,显示为1-12
MMM: 月,显示为英文月份简写,如 Jan
MMMM: 月,显示为英文月份全称,如 Janualy
dd: 日,2位数表示,如02
d: 日,1-2位显示,如 2
EEE: 简写星期几,如Sun
EEEE: 全写星期几,如Sunday
aa: 上下午,AM/PM
H: 时,24小时制,0-23
K:时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒
常用日期结构:
yyyy-MM-dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
MM dd yyyy
四、设置圆形按钮
代码设置:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(CGRectGetMidX(self.view.frame) - 100, CGRectGetMidY(self.view.frame) - 100, 200, 200);
btn.backgroundColor = [UIColor magentaColor];
[btn setTitle:@"click me" forState:UIControlStateNormal];
btn.layer.masksToBounds = YES;
btn.layer.cornerRadius = CGRectGetHeight(btn.frame) / 2.0f;
[self.view addSubview:btn];
运行截图:
![](https://img.haomeiwen.com/i2311536/5880c52a98d0424a.png)
网友评论