摘要:本文将带你了解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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号