iOS 开发常用的代码片段( Objective-C)

在 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);
日期格式引用

iOS-NSDateFormatter 格式说明(转载)

格式化参数如下:
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];

运行截图:

《iOS 开发常用的代码片段( Objective-C)》 Simulator Screen Shot 2017年4月18日 23.37.53.png

    原文作者:fengyingjk
    原文地址: https://www.jianshu.com/p/f7d62f7e21d1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞