IOS开发入门常用的代码块收集整理
凌雪 2018-09-30 来源 :网络 阅读 1129 评论 0

摘要:本文将带你了解IOS开发入门常用的代码块收集整理,希望本文对大家学IOS有所帮助。

本文将带你了解IOS开发入门常用的代码块收集整理,希望本文对大家学IOS有所帮助。


         

收集常用的代码块是加快开发的有效途径,收集的操作步骤这里不在赘述,仅仅贡献上一些常用的功能性代码

1、与高度和宽度有关的


   

/*获取导航栏高度*/

 public func getNavigationBarHeight() -> CGFloat   {

  let navRect:CGRect! =   self.navigationController?.navigationBar.frame

  return navRect.size.height

 }

 /*获取标签栏高度*/

 public func getTabBarHeight() -> CGFloat   {

  let tabBarRect:CGRect! = self.tabBarController?.tabBar.frame

  return tabBarRect.size.height

 }

 /*获取状态栏高度*/

 public func getStatusBarHeight() -> CGFloat   {

  let rectStatus:CGRect =   UIApplication.shared.statusBarFrame

  return rectStatus.size.height

 }

 

 /*根据提供的字体大小,宽度获取字文字的高度*/

 func getTextHeigh(textStr:String,font:UIFont,width:CGFloat)   -> CGFloat {

  let normalText: NSString = textStr as   NSString

  let size = CGSize(width: width, height: 10000)

  let dic:NSDictionary = NSDictionary(object: font, forKey:   NSAttributedStringKey.font as NSCopying)

  let stringSize = normalText.boundingRect(with: size, options:   .usesLineFragmentOrigin, attributes: dic as? [NSAttributedStringKey : Any],   context:nil).size

  return stringSize.height

 }

  

 /*提供文字大小,控件高度,获取到文字的宽度*/

 func getTexWidth(textStr:String,font:UIFont,height:CGFloat)   -> CGFloat {

  let normalText: NSString = textStr as   NSString

  let size = CGSize(width: 10000, height: height)

  let dic:NSDictionary = NSDictionary(object: font, forKey:   NSAttributedStringKey.font as NSCopying)

  let stringSize = normalText.boundingRect(with: size, options:   .usesLineFragmentOrigin, attributes: dic as? [NSAttributedStringKey : Any],   context:nil).size

  return stringSize.width + 40

 }

 

 UIScreen.main.bounds.size.width // 屏幕宽度

 UIScreen.main.bounds.size.height // 屏幕高度

 

 

 /*UIFont的适配(创建UIFont的扩展)*/

+ (void)load {

 Method newMethod = class_getClassMethod([self   class], @selector(adjustFont:));

 Method method = class_getClassMethod([self class], @selector(systemFontOfSize:));

 method_exchangeImplementations(newMethod,   method);

}

 

+ (UIFont   *)adjustFont:(CGFloat)fontSize {

 UIFont *newFont = nil;

 //BaseWidth 为设计图的尺寸

 newFont = [UIFont adjustFont:fontSize * [UIScreen   mainScreen].bounds.size.width / BaseWidth];

 return newFont;

}

   


2、处理类相关


   

/*十六进制颜色*/

func   RGBColorFromHex(rgbValue: Int) -> (UIColor)   {

 return   UIColor(red: ((CGFloat)((rgbValue   & 0xFF0000) >> 16)) /   255.0,

 green: ((CGFloat)((rgbValue & 0xFF00) >> 8)) /   255.0,

 blue: ((CGFloat)(rgbValue & 0xFF)) / 255.0,

 alpha: 1.0)

}

 

/*时间戳转化成自定义时间格式*/

func getTimeWithTimeInterval(timeInterval:TimeInterval,   dataFormart:String) -> String {

  let date:Date = Date(timeIntervalSince1970: timeInterval /   1000)

  let formatter:DateFormatter =   DateFormatter.init()

  formatter.dateFormat =   dataFormart

  let timeStr:String = formatter.string(from:   date)

  return timeStr

 }

 

/*字符串MD5加密*/

- (NSString *)md5String:(NSString *)str

{

 if (!str) return nil;

 const char *cStr = str.UTF8String;

 unsigned char result[CC_MD5_DIGEST_LENGTH];

 CC_MD5(cStr, (CC_LONG)strlen(cStr),   result);

 NSMutableString *md5Str = [NSMutableString   string];

 for (int i   = 0; i   < CC_MD5_DIGEST_LENGTH; ++i) {

  [md5Str appendFormat:@"%02x", result[i]];

 }

 return md5Str;

}

 

/*微信支付签名*/

-(NSString *)createMD5SingForPayWithAppID:(NSString   *)appid_key partnerid:(NSString *)partnerid_key prepayid:(NSString   *)prepayid_key package:(NSString *)package_key noncestr:(NSString *)noncestr_key   timestamp:(UInt32)timestamp_key{

 NSMutableDictionary *signParams = [NSMutableDictionary   dictionary];

 [signParams setObject:appid_key forKey:@"appid"];//微信appid 例如wxfb132134e5342

 [signParams setObject:noncestr_key   forKey:@"noncestr"];//随机字符串

 [signParams setObject:package_key   forKey:@"package"];//扩展字段  参数为 Sign=WXPay

 [signParams setObject:partnerid_key   forKey:@"partnerid"];//商户账号

 [signParams setObject:prepayid_key   forKey:@"prepayid"];//此处为统一下单接口返回的预支付订单号

 [signParams setObject:[NSString   stringWithFormat:@"%u",timestamp_key] forKey:@"timestamp"];//时间戳

  

 NSMutableString *contentString  =[NSMutableString   string];

 NSArray *keys = [signParams   allKeys];

 NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id   obj1, id obj2) {

  return [obj1 compare:obj2   options:NSNumericSearch];

 }];

 for (NSString *categoryId in sortedArray)   {

  if   (![[signParams   objectForKey:categoryId] isEqualToString:@""]

&& ![[signParams objectForKey:categoryId]   isEqualToString:@"sign"]

&& ![[signParams objectForKey:categoryId] isEqualToString:@"key"]

)

  {

[contentString   appendFormat:@"%@=%@&", categoryId, [signParams   objectForKey:categoryId]];

  }

 }

 [contentString appendFormat:@"key=%@", @"utNO9LVL7LgMhfloAl8yO6ORrKIo2iky"];

 NSString *result = [self   md5String:contentString];

 return result;

}

 

/*去除字符串的空格和换行符*/

+ (NSString *) handleNewLineAndWhitSpaceForString:(NSString   *)str;{

 str = [str   stringByReplacingOccurrencesOfString:@"\r" withString:@""];

 str = [str   stringByReplacingOccurrencesOfString:@"\n" withString:@""];

 str = [str   stringByReplacingOccurrencesOfString:@" " withString:@""<code class=    

   


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程