|
|
|
|
//
|
|
|
|
|
// myHleper.m
|
|
|
|
|
// myWatch
|
|
|
|
|
//
|
|
|
|
|
// Created by xTT on 16/3/16.
|
|
|
|
|
// Copyright © 2016年 xTT. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#import "myHelper.h"
|
|
|
|
|
#import <Photos/Photos.h>
|
|
|
|
|
#import "User.h"
|
|
|
|
|
#import "Device.h"
|
|
|
|
|
//#import "SVProgressHUD.h"
|
|
|
|
|
@implementation myHelper
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ (UIImage *)getImageWithName:(NSString *)name{
|
|
|
|
|
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%@%@",THEME_NAME,name]];
|
|
|
|
|
if (!image) {
|
|
|
|
|
return [UIImage imageNamed:name];
|
|
|
|
|
}else{
|
|
|
|
|
return image;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (UIFont *)fixFoneSize:(NSInteger)size font:(UIFont *)font{
|
|
|
|
|
return [font fontWithSize:size * SWIDTH / 320];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (NSString *)getDateFormatWithStr:(NSString *)dateFormat date:(NSDate *)date{
|
|
|
|
|
NSDateFormatter*dateFormatter = [[NSDateFormatter alloc]init];
|
|
|
|
|
[dateFormatter setDateFormat:dateFormat];
|
|
|
|
|
return [dateFormatter stringFromDate:date];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (NSString *)getDateFormatWithStr:(NSString *)dateFormat timeInterval:(NSTimeInterval)timeInterval{
|
|
|
|
|
return [self getDateFormatWithStr:dateFormat date:[NSDate dateWithTimeIntervalSince1970:timeInterval]];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (NSDate *)getDateWithStr:(NSString *)dateString dateFormat:(NSString *)dateFormat{
|
|
|
|
|
dateString = [dateString stringByReplacingOccurrencesOfString:@"T" withString:@" "];
|
|
|
|
|
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
|
|
|
|
[dateFormatter setDateFormat: dateFormat];
|
|
|
|
|
NSDate *destDate= [dateFormatter dateFromString:dateString];
|
|
|
|
|
return destDate;
|
|
|
|
|
}
|
|
|
|
|
///< 获取当前时间的: 前一周(day:-7)丶前一个月(month:-30)丶前一年(year:-1)的时间 NSDate
|
|
|
|
|
+ (NSDate *)ddpGetExpectTimestamp:(NSInteger)year month:(NSUInteger)month day:(NSUInteger)day {
|
|
|
|
|
|
|
|
|
|
///< 当前时间
|
|
|
|
|
NSDate *currentdata = [NSDate date];
|
|
|
|
|
|
|
|
|
|
///< NSCalendar -- 日历类,它提供了大部分的日期计算接口,并且允许您在NSDate和NSDateComponents之间转换
|
|
|
|
|
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
///< NSDateComponents:时间容器,一个包含了详细的年月日时分秒的容器。
|
|
|
|
|
///< 下例:获取指定日期的年,月,日
|
|
|
|
|
NSDateComponents *comps = nil;
|
|
|
|
|
comps = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:currentdata];
|
|
|
|
|
NSLog(@"年 year = %ld",comps.year);
|
|
|
|
|
NSLog(@"月 month = %ld",comps.month);
|
|
|
|
|
NSLog(@"日 day = %ld",comps.day);*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NSDateComponents *datecomps = [[NSDateComponents alloc] init];
|
|
|
|
|
[datecomps setYear:year?:0];
|
|
|
|
|
[datecomps setMonth:month?:0];
|
|
|
|
|
[datecomps setDay:day?:0];
|
|
|
|
|
|
|
|
|
|
///< dateByAddingComponents: 在参数date基础上,增加一个NSDateComponents类型的时间增量
|
|
|
|
|
NSDate *calculatedate = [calendar dateByAddingComponents:datecomps toDate:currentdata options:0];
|
|
|
|
|
|
|
|
|
|
// ///< 打印推算时间
|
|
|
|
|
// NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
|
|
|
|
|
// [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
|
|
|
|
|
// NSString *calculateStr = [formatter stringFromDate:calculatedate];
|
|
|
|
|
//
|
|
|
|
|
// xLog(@"calculateStr 推算时间: %@",calculateStr );
|
|
|
|
|
//
|
|
|
|
|
// ///< 预期的推算时间
|
|
|
|
|
// NSString *result = [NSString stringWithFormat:@"%ld", (long)[calculatedate timeIntervalSince1970]];
|
|
|
|
|
|
|
|
|
|
return calculatedate;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (BOOL)isEqualImage:(UIImage *)image1 image2:(UIImage *)image2{
|
|
|
|
|
NSData *data1 = UIImagePNGRepresentation(image1);
|
|
|
|
|
NSData *data = UIImagePNGRepresentation(image2);
|
|
|
|
|
if ([data isEqual:data1]) {
|
|
|
|
|
return YES;
|
|
|
|
|
}
|
|
|
|
|
return NO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ (UIColor *)colorWithHexString:(NSString *)color
|
|
|
|
|
{
|
|
|
|
|
NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
|
|
|
|
|
|
|
|
|
|
// String should be 6 or 8 characters
|
|
|
|
|
if ([cString length] < 6) {
|
|
|
|
|
return [UIColor clearColor];
|
|
|
|
|
}
|
|
|
|
|
// 判断前缀
|
|
|
|
|
if ([cString hasPrefix:@"0X"])
|
|
|
|
|
cString = [cString substringFromIndex:2];
|
|
|
|
|
if ([cString hasPrefix:@"#"])
|
|
|
|
|
cString = [cString substringFromIndex:1];
|
|
|
|
|
if ([cString length] != 6)
|
|
|
|
|
return [UIColor clearColor];
|
|
|
|
|
// 从六位数值中找到RGB对应的位数并转换
|
|
|
|
|
NSRange range;
|
|
|
|
|
range.location = 0;
|
|
|
|
|
range.length = 2;
|
|
|
|
|
//R、G、B
|
|
|
|
|
NSString *rString = [cString substringWithRange:range];
|
|
|
|
|
range.location = 2;
|
|
|
|
|
NSString *gString = [cString substringWithRange:range];
|
|
|
|
|
range.location = 4;
|
|
|
|
|
NSString *bString = [cString substringWithRange:range];
|
|
|
|
|
// Scan values
|
|
|
|
|
unsigned int r, g, b;
|
|
|
|
|
[[NSScanner scannerWithString:rString] scanHexInt:&r];
|
|
|
|
|
[[NSScanner scannerWithString:gString] scanHexInt:&g];
|
|
|
|
|
[[NSScanner scannerWithString:bString] scanHexInt:&b];
|
|
|
|
|
|
|
|
|
|
return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:1.0f];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma mark 二维码 URL获取 参数
|
|
|
|
|
+ (NSMutableDictionary *)getDicWithUrl:(NSString *)urlStr{
|
|
|
|
|
//获取问号的位置,问号后是参数列表
|
|
|
|
|
NSRange range = [urlStr rangeOfString:@"?"];
|
|
|
|
|
|
|
|
|
|
if (range.location != NSNotFound) {
|
|
|
|
|
//获取参数列表
|
|
|
|
|
NSString *propertys = [urlStr substringFromIndex:(int)(range.location+1)];
|
|
|
|
|
|
|
|
|
|
//进行字符串的拆分,通过&来拆分,把每个参数分开
|
|
|
|
|
NSArray *subArray = [propertys componentsSeparatedByString:@"&"];
|
|
|
|
|
|
|
|
|
|
//把subArray转换为字典
|
|
|
|
|
//tempDic中存放一个URL中转换的键值对
|
|
|
|
|
NSMutableDictionary *tempDic = [NSMutableDictionary dictionary];
|
|
|
|
|
|
|
|
|
|
[subArray enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
|
|
|
//在通过=拆分键和值
|
|
|
|
|
NSArray *dicArray = [obj componentsSeparatedByString:@"="];
|
|
|
|
|
if (dicArray.count >= 2) {
|
|
|
|
|
//给字典加入元素
|
|
|
|
|
[tempDic setObject:dicArray[1] forKey:dicArray[0]];
|
|
|
|
|
}
|
|
|
|
|
}];
|
|
|
|
|
return tempDic;
|
|
|
|
|
}
|
|
|
|
|
return nil;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#pragma mark 将头像图片加上边框
|
|
|
|
|
+ (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2
|
|
|
|
|
{
|
|
|
|
|
UIGraphicsBeginImageContextWithOptions(image2.size, NO, 2.0);
|
|
|
|
|
|
|
|
|
|
//Draw 头像
|
|
|
|
|
[image1 drawInRect:CGRectMake(0, 0, image1.size.width, image1.size.height)];
|
|
|
|
|
//Draw 外框
|
|
|
|
|
[image2 drawInRect:CGRectMake(0, 0, image2.size.width, image2.size.height)];
|
|
|
|
|
|
|
|
|
|
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
|
|
|
|
|
UIGraphicsEndImageContext();
|
|
|
|
|
return resultImage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#pragma mark 将UIImage变为圆角
|
|
|
|
|
+ (void) addRoundedRectToPath:(CGContextRef)context
|
|
|
|
|
rect:(CGRect )rect
|
|
|
|
|
ovalWidth:(float) ovalWidth
|
|
|
|
|
ovalHeight:(float) ovalHeight
|
|
|
|
|
{
|
|
|
|
|
float fw,fh;
|
|
|
|
|
if (ovalWidth == 0 || ovalHeight == 0) {
|
|
|
|
|
CGContextAddRect(context, rect);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CGContextSaveGState(context);
|
|
|
|
|
CGContextTranslateCTM(context, CGRectGetMinX(rect), CGRectGetMinY(rect));
|
|
|
|
|
CGContextScaleCTM(context, ovalWidth, ovalHeight);
|
|
|
|
|
fw = CGRectGetWidth(rect) / ovalWidth;
|
|
|
|
|
fh = CGRectGetHeight(rect) / ovalHeight;
|
|
|
|
|
|
|
|
|
|
CGContextMoveToPoint(context, fw, fh/2); // Start at lower right corner
|
|
|
|
|
CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1); // Top right corner
|
|
|
|
|
CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1); // Top left corner
|
|
|
|
|
CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1); // Lower left corner
|
|
|
|
|
CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); // Back to lower right
|
|
|
|
|
|
|
|
|
|
CGContextClosePath(context);
|
|
|
|
|
CGContextRestoreGState(context);
|
|
|
|
|
}
|
|
|
|
|
+ (id) createRoundedRectImage:(UIImage*)image addImage:(UIImage *)addImage size:(CGSize)size{
|
|
|
|
|
return [self createRoundedRectImage:image addImage:addImage size:size oval:headOval];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (id) createRoundedRectImage:(UIImage*)image addImage:(UIImage *)addImage size:(CGSize)size oval:(CGFloat)oval{
|
|
|
|
|
|
|
|
|
|
addImage = [self changeImageSize:addImage size:size];
|
|
|
|
|
|
|
|
|
|
// the size of CGContextRef
|
|
|
|
|
CGFloat w = size.width * addImage.scale;
|
|
|
|
|
CGFloat h = size.height * addImage.scale;
|
|
|
|
|
|
|
|
|
|
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
|
|
|
|
CGContextRef context = CGBitmapContextCreate(NULL, (int)w, (int)h, 8, 4 * (int)w, colorSpace,kCGImageAlphaPremultipliedFirst);
|
|
|
|
|
CGRect rect = CGRectMake(0, 0, w, h);
|
|
|
|
|
|
|
|
|
|
CGContextBeginPath(context);
|
|
|
|
|
|
|
|
|
|
[self addRoundedRectToPath:context rect:rect ovalWidth:w / oval ovalHeight:h / oval];
|
|
|
|
|
CGContextClosePath(context);
|
|
|
|
|
CGContextClip(context);
|
|
|
|
|
CGContextDrawImage(context, CGRectMake(0, 0, w, h), image.CGImage);
|
|
|
|
|
CGImageRef imageMasked = CGBitmapContextCreateImage(context);
|
|
|
|
|
CGContextRelease(context);
|
|
|
|
|
CGColorSpaceRelease(colorSpace);
|
|
|
|
|
|
|
|
|
|
return [self addImage:[UIImage imageWithCGImage:imageMasked
|
|
|
|
|
scale:[UIScreen mainScreen].scale
|
|
|
|
|
orientation:image.imageOrientation]
|
|
|
|
|
toImage:addImage];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (UIImage *)changeImageSize:(UIImage *)image size:(CGSize)size
|
|
|
|
|
{
|
|
|
|
|
UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
|
|
|
|
|
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
|
|
|
|
|
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
|
|
|
|
|
UIGraphicsEndImageContext();
|
|
|
|
|
return resultImage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//剪裁&压缩图片
|
|
|
|
|
+ (UIImage*) scalingAndCroppingToSize:(CGSize)targetSize withImage:(UIImage*)sourceImage
|
|
|
|
|
{
|
|
|
|
|
UIImage *newImage = nil;
|
|
|
|
|
CGSize imageSize = sourceImage.size;
|
|
|
|
|
CGFloat width = imageSize.width;
|
|
|
|
|
CGFloat height = imageSize.height;
|
|
|
|
|
CGFloat targetWidth = targetSize.width;
|
|
|
|
|
CGFloat targetHeight = targetSize.height;
|
|
|
|
|
CGFloat scaleFactor = 0.0;
|
|
|
|
|
CGFloat scaledWidth = targetWidth;
|
|
|
|
|
CGFloat scaledHeight = targetHeight;
|
|
|
|
|
//剪裁点的位置,以3*2长方形剪裁为2*2正方形为例,截取image中心部分,剪切点为(0,0.5)
|
|
|
|
|
CGPoint thumbnailPoint = CGPointMake(0.0,0.0);
|
|
|
|
|
|
|
|
|
|
if (CGSizeEqualToSize(imageSize, targetSize) == NO)
|
|
|
|
|
{
|
|
|
|
|
//compress scale
|
|
|
|
|
CGFloat widthFactor = targetWidth / width;
|
|
|
|
|
CGFloat heightFactor = targetHeight / height;
|
|
|
|
|
|
|
|
|
|
//set scaleFactoras lesser scale,fit lesser scale
|
|
|
|
|
if (widthFactor > heightFactor)
|
|
|
|
|
scaleFactor = widthFactor; // scale to fit height
|
|
|
|
|
else
|
|
|
|
|
scaleFactor = heightFactor; // scale to fit width
|
|
|
|
|
|
|
|
|
|
//reset the target size with the new scale factor
|
|
|
|
|
scaledWidth = width * scaleFactor;
|
|
|
|
|
scaledHeight = height * scaleFactor;
|
|
|
|
|
|
|
|
|
|
// get cropping point
|
|
|
|
|
if (widthFactor > heightFactor)
|
|
|
|
|
{
|
|
|
|
|
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
|
|
|
|
|
}
|
|
|
|
|
else if (widthFactor < heightFactor)
|
|
|
|
|
{
|
|
|
|
|
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UIGraphicsBeginImageContextWithOptions(targetSize, NO, [UIScreen mainScreen].scale);
|
|
|
|
|
|
|
|
|
|
CGRect thumbnailRect = CGRectZero;
|
|
|
|
|
thumbnailRect.origin = thumbnailPoint;
|
|
|
|
|
thumbnailRect.size.width = scaledWidth;
|
|
|
|
|
thumbnailRect.size.height = scaledHeight;
|
|
|
|
|
|
|
|
|
|
//corpping image to special rectangle
|
|
|
|
|
[sourceImage drawInRect:thumbnailRect];
|
|
|
|
|
|
|
|
|
|
newImage = UIGraphicsGetImageFromCurrentImageContext();
|
|
|
|
|
if(newImage == nil)
|
|
|
|
|
xLog(@"could not scale image");
|
|
|
|
|
|
|
|
|
|
//pop the context to get back to the default
|
|
|
|
|
UIGraphicsEndImageContext();
|
|
|
|
|
return newImage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#pragma 添加阴影
|
|
|
|
|
+ (void)addShadow:(UIImageView *)imageView image:(UIImage *)image{
|
|
|
|
|
imageView.clipsToBounds = NO;
|
|
|
|
|
//创建对象
|
|
|
|
|
CALayer *subLayer = [CALayer layer];
|
|
|
|
|
//底色
|
|
|
|
|
subLayer.backgroundColor = [UIColor clearColor].CGColor;
|
|
|
|
|
//阴影大小
|
|
|
|
|
subLayer.shadowOffset = CGSizeMake(4, 4);
|
|
|
|
|
//阴影的深浅 float数值 越小颜色越重
|
|
|
|
|
subLayer.shadowRadius = 4.0;
|
|
|
|
|
//阴影颜色
|
|
|
|
|
subLayer.shadowColor = [UIColor darkGrayColor].CGColor;
|
|
|
|
|
//阴影透明度
|
|
|
|
|
subLayer.shadowOpacity = 0.8;
|
|
|
|
|
//大小
|
|
|
|
|
subLayer.frame = CGRectMake(0, 0, CGRectGetWidth(imageView.frame) - 2, CGRectGetHeight(imageView.frame) - 2);
|
|
|
|
|
//边框颜色
|
|
|
|
|
// subLayer.borderColor = [UIColor clearColor].CGColor;
|
|
|
|
|
//边框宽度
|
|
|
|
|
// subLayer.borderWidth = 0;
|
|
|
|
|
//设置委圆角
|
|
|
|
|
subLayer.cornerRadius = CGRectGetWidth(imageView.frame)/2;
|
|
|
|
|
|
|
|
|
|
CALayer *imageLayer = [CALayer layer];
|
|
|
|
|
//层的 大小
|
|
|
|
|
imageLayer.frame = CGRectMake(0, 0, CGRectGetWidth(imageView.frame) - 2, CGRectGetHeight(imageView.frame) - 2);
|
|
|
|
|
//设置委圆角
|
|
|
|
|
imageLayer.cornerRadius = CGRectGetWidth(imageView.frame)/2;
|
|
|
|
|
//设置剪辑
|
|
|
|
|
imageLayer.masksToBounds = YES;
|
|
|
|
|
//加载图片
|
|
|
|
|
imageLayer.contents = (id)image.CGImage;
|
|
|
|
|
// 加载 层
|
|
|
|
|
[subLayer addSublayer:imageLayer];
|
|
|
|
|
[imageView.layer addSublayer:subLayer];
|
|
|
|
|
}
|
|
|
|
|
+ (void)addShadow:(UIImageView *)imageView imageName:(NSString *)imageName
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (NSString *)getWeekDayStr:(NSString *)week{
|
|
|
|
|
if (week.length > 0) {
|
|
|
|
|
NSArray *arr = [self getWeekStr:week removedNil:YES];
|
|
|
|
|
if (arr.count == 7) {
|
|
|
|
|
return @"每天";
|
|
|
|
|
}else if (arr.count > 0) {
|
|
|
|
|
return [arr componentsJoinedByString:@"、"];
|
|
|
|
|
}
|
|
|
|
|
return @"一次";
|
|
|
|
|
}
|
|
|
|
|
return nil;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (NSMutableArray *)getWeekStr:(NSString *)string removedNil:(BOOL)isRemoved{
|
|
|
|
|
NSMutableArray *weekArr = [NSMutableArray arrayWithArray:@[@"",@"",@"",@"",@"",@"",@""]];
|
|
|
|
|
[string enumerateSubstringsInRange:NSMakeRange(0, string.length)
|
|
|
|
|
options:NSStringEnumerationByComposedCharacterSequences
|
|
|
|
|
usingBlock:^(NSString * _Nullable substring, NSRange substringRange, NSRange enclosingRange, BOOL * _Nonnull stop)
|
|
|
|
|
{
|
|
|
|
|
NSString *str = @"";
|
|
|
|
|
if ([substring isEqualToString:@"1"]) {
|
|
|
|
|
switch (substringRange.location) {
|
|
|
|
|
case 0:str = @"周一";break;
|
|
|
|
|
case 1:str = @"周二";break;
|
|
|
|
|
case 2:str = @"周三";break;
|
|
|
|
|
case 3:str = @"周四";break;
|
|
|
|
|
case 4:str = @"周五";break;
|
|
|
|
|
case 5:str = @"周六";break;
|
|
|
|
|
case 6:str = @"周日";break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
[weekArr replaceObjectAtIndex:substringRange.location withObject:str];
|
|
|
|
|
}];
|
|
|
|
|
if (isRemoved) {
|
|
|
|
|
[weekArr removeObject:@""];
|
|
|
|
|
}
|
|
|
|
|
return weekArr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (NSMutableArray *)getWeekDayDataArr:(NSArray *)arr{
|
|
|
|
|
NSMutableArray *weekArr = [NSMutableArray arrayWithArray:@[@"0",@"0",@"0",@"0",@"0",@"0",@"0"]];
|
|
|
|
|
[arr enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL *stop) {
|
|
|
|
|
if ([obj isEqualToString:@"周一"]) {
|
|
|
|
|
[weekArr replaceObjectAtIndex:idx withObject:@"1"];
|
|
|
|
|
}else if ([obj isEqualToString:@"周二"]) {
|
|
|
|
|
[weekArr replaceObjectAtIndex:idx withObject:@"1"];
|
|
|
|
|
}else if ([obj isEqualToString:@"周三"]) {
|
|
|
|
|
[weekArr replaceObjectAtIndex:idx withObject:@"1"];
|
|
|
|
|
}else if ([obj isEqualToString:@"周四"]) {
|
|
|
|
|
[weekArr replaceObjectAtIndex:idx withObject:@"1"];
|
|
|
|
|
}else if ([obj isEqualToString:@"周五"]) {
|
|
|
|
|
[weekArr replaceObjectAtIndex:idx withObject:@"1"];
|
|
|
|
|
}else if ([obj isEqualToString:@"周六"]) {
|
|
|
|
|
[weekArr replaceObjectAtIndex:idx withObject:@"1"];
|
|
|
|
|
}else if ([obj isEqualToString:@"周日"]) {
|
|
|
|
|
[weekArr replaceObjectAtIndex:idx withObject:@"1"];
|
|
|
|
|
}
|
|
|
|
|
}];
|
|
|
|
|
return weekArr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ (UIAlertController *)getAlertWithTitle:(NSString *)title
|
|
|
|
|
actionTitles:(NSArray *)actionTitles
|
|
|
|
|
block:(void (^)(UIAlertAction *action))block{
|
|
|
|
|
return [myHelper getAlertWithTitle:title
|
|
|
|
|
actionTitles:actionTitles
|
|
|
|
|
style:UIAlertControllerStyleActionSheet
|
|
|
|
|
block:block];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (UIAlertController *)getAlertWithTitle:(NSString *)title
|
|
|
|
|
actionTitles:(NSArray *)actionTitles
|
|
|
|
|
style:(UIAlertControllerStyle)style
|
|
|
|
|
block:(void (^)(UIAlertAction *action))block{
|
|
|
|
|
UIAlertController *sheet = [UIAlertController alertControllerWithTitle:title
|
|
|
|
|
message:nil
|
|
|
|
|
preferredStyle:style];
|
|
|
|
|
[actionTitles enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
|
|
|
UIAlertAction *action = [UIAlertAction actionWithTitle:NSLocalizedStringFromTable(obj, @"Localization", @"")
|
|
|
|
|
style:UIAlertActionStyleDefault
|
|
|
|
|
handler:^(UIAlertAction *action)
|
|
|
|
|
{
|
|
|
|
|
block(action);
|
|
|
|
|
}];
|
|
|
|
|
[sheet addAction:action];
|
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消"
|
|
|
|
|
style:UIAlertActionStyleCancel
|
|
|
|
|
handler:^(UIAlertAction * _Nonnull action)
|
|
|
|
|
{}];
|
|
|
|
|
[sheet addAction:cancelAction];
|
|
|
|
|
|
|
|
|
|
return sheet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (UIAlertController *)getAlertWithTitle:(NSString *)title
|
|
|
|
|
message:(NSString *) msg
|
|
|
|
|
actionTitles:(NSArray *)actionTitles
|
|
|
|
|
style:(UIAlertControllerStyle)style
|
|
|
|
|
block:(void (^)(UIAlertAction *action))block{
|
|
|
|
|
UIAlertController *sheet = [UIAlertController alertControllerWithTitle:title
|
|
|
|
|
message:msg
|
|
|
|
|
preferredStyle:style];
|
|
|
|
|
|
|
|
|
|
NSMutableAttributedString *messageStr = [[NSMutableAttributedString alloc] initWithString:msg];
|
|
|
|
|
[messageStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, msg.length)];
|
|
|
|
|
[messageStr addAttribute:NSForegroundColorAttributeName value:[UIColor systemGrayColor] range:NSMakeRange(0, msg.length)];
|
|
|
|
|
|
|
|
|
|
[sheet setValue:messageStr forKey:@"attributedMessage"];
|
|
|
|
|
|
|
|
|
|
[actionTitles enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
|
|
|
UIAlertAction *action = [UIAlertAction actionWithTitle:NSLocalizedStringFromTable(obj, @"Localization", @"")
|
|
|
|
|
style:UIAlertActionStyleDefault
|
|
|
|
|
handler:^(UIAlertAction *action)
|
|
|
|
|
{
|
|
|
|
|
block(action);
|
|
|
|
|
}];
|
|
|
|
|
[sheet addAction:action];
|
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消"
|
|
|
|
|
style:UIAlertActionStyleCancel
|
|
|
|
|
handler:^(UIAlertAction * _Nonnull action)
|
|
|
|
|
{
|
|
|
|
|
block(action);
|
|
|
|
|
}];
|
|
|
|
|
[sheet addAction:cancelAction];
|
|
|
|
|
|
|
|
|
|
return sheet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (UIAlertController *)getAlertWithPicture:(void (^)(UIImagePickerController *imagePickerVC))block{
|
|
|
|
|
if([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo] == AVAuthorizationStatusDenied){
|
|
|
|
|
// [UICommon MessageErrorText:NSLocalizedStringFromTable(@"请在iOS设备的 设置-隐私-相机 中允许访问相机。", @"Localization", @"")];
|
|
|
|
|
|
|
|
|
|
LGAlertView *alertView = [[LGAlertView alloc] initWithTitle:[NSString stringWithFormat:@"请为%@打开相机权限",APPName] message:@"" style:LGAlertViewStyleAlert buttonTitles:@[@"设置"] cancelButtonTitle:@"取消" destructiveButtonTitle:nil actionHandler:^(LGAlertView *alertView, NSString *title, NSUInteger index) {
|
|
|
|
|
NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
|
|
|
|
|
|
|
|
|
|
if([[UIApplication sharedApplication] canOpenURL:url]) {
|
|
|
|
|
|
|
|
|
|
NSURL*url =[NSURL URLWithString:UIApplicationOpenSettingsURLString]; [[UIApplication sharedApplication] openURL:url];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} cancelHandler:nil destructiveHandler:nil];
|
|
|
|
|
[alertView showAnimated:YES completionHandler:nil];
|
|
|
|
|
}else if ([PHPhotoLibrary authorizationStatus] == PHAuthorizationStatusDenied){
|
|
|
|
|
// [UICommon MessageErrorText:NSLocalizedStringFromTable(@"请在iOS设备的 设置-隐私-照片 中允许访问照片。", @"Localization", @"")];
|
|
|
|
|
LGAlertView *alertView = [[LGAlertView alloc] initWithTitle:[NSString stringWithFormat:@"请为%@打开相机权限",APPName] message:@"" style:LGAlertViewStyleAlert buttonTitles:@[@"设置"] cancelButtonTitle:@"取消" destructiveButtonTitle:nil actionHandler:^(LGAlertView *alertView, NSString *title, NSUInteger index) {
|
|
|
|
|
NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
|
|
|
|
|
|
|
|
|
|
if([[UIApplication sharedApplication] canOpenURL:url]) {
|
|
|
|
|
|
|
|
|
|
NSURL*url =[NSURL URLWithString:UIApplicationOpenSettingsURLString]; [[UIApplication sharedApplication] openURL:url];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} cancelHandler:nil destructiveHandler:nil];
|
|
|
|
|
[alertView showAnimated:YES completionHandler:nil];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
|
|
|
|
|
imagePickerController.allowsEditing = YES;
|
|
|
|
|
|
|
|
|
|
UIAlertController *sheet = [UIAlertController alertControllerWithTitle:nil
|
|
|
|
|
message:nil
|
|
|
|
|
preferredStyle:UIAlertControllerStyleActionSheet];
|
|
|
|
|
|
|
|
|
|
UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:NSLocalizedStringFromTable(@"拍照", @"Localization", @"")
|
|
|
|
|
style:UIAlertActionStyleDefault
|
|
|
|
|
handler:^(UIAlertAction *action)
|
|
|
|
|
{
|
|
|
|
|
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
|
|
|
|
|
|
|
|
|
|
block(imagePickerController);
|
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
UIAlertAction *libraryAction = [UIAlertAction actionWithTitle:NSLocalizedStringFromTable(@"从相册选择", @"Localization", @"")
|
|
|
|
|
style:UIAlertActionStyleDefault
|
|
|
|
|
handler:^(UIAlertAction *action)
|
|
|
|
|
{
|
|
|
|
|
block(imagePickerController);
|
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消"
|
|
|
|
|
style:UIAlertActionStyleCancel
|
|
|
|
|
handler:^(UIAlertAction * _Nonnull action)
|
|
|
|
|
{}];
|
|
|
|
|
|
|
|
|
|
[sheet addAction:cameraAction];
|
|
|
|
|
[sheet addAction:libraryAction];
|
|
|
|
|
[sheet addAction:cancelAction];
|
|
|
|
|
return sheet;
|
|
|
|
|
}
|
|
|
|
|
return nil;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (NSMutableString *)secToStr:(NSInteger)sec{
|
|
|
|
|
NSMutableString *timeStr = [NSMutableString string];
|
|
|
|
|
NSInteger day = sec / (60 * 60 * 24);
|
|
|
|
|
sec -= day * 60 * 60 * 24;
|
|
|
|
|
NSInteger ousr = sec / (60 * 60);
|
|
|
|
|
sec -= ousr * 60 * 60;
|
|
|
|
|
NSInteger minutes = sec / 60;
|
|
|
|
|
sec -= minutes * 60;
|
|
|
|
|
|
|
|
|
|
if (day > 0) {
|
|
|
|
|
[timeStr appendString:[NSString stringWithFormat:@"%zi天",day]];
|
|
|
|
|
}
|
|
|
|
|
if (ousr > 0) {
|
|
|
|
|
[timeStr appendString:[NSString stringWithFormat:@"%zi小时",ousr]];
|
|
|
|
|
}
|
|
|
|
|
if (day > 0) {
|
|
|
|
|
[timeStr appendString:[NSString stringWithFormat:@"%zi分",minutes]];
|
|
|
|
|
return timeStr;
|
|
|
|
|
}
|
|
|
|
|
if (sec < 10) {
|
|
|
|
|
[timeStr appendString:[NSString stringWithFormat:@"%zi分0%zi秒",minutes,sec]];
|
|
|
|
|
}else{
|
|
|
|
|
[timeStr appendString:[NSString stringWithFormat:@"%zi分%zi秒",minutes,sec]];
|
|
|
|
|
}
|
|
|
|
|
return timeStr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (NSString *)distanceTimeWithBeforeTime:(double)beTime
|
|
|
|
|
{
|
|
|
|
|
NSTimeInterval now = [[NSDate date]timeIntervalSince1970];
|
|
|
|
|
double distanceTime = now - beTime;
|
|
|
|
|
NSString * distanceStr;
|
|
|
|
|
|
|
|
|
|
NSDate * beDate = [NSDate dateWithTimeIntervalSince1970:beTime];
|
|
|
|
|
|
|
|
|
|
NSDateFormatter *df2 = [[NSDateFormatter alloc]init];
|
|
|
|
|
[df2 setDateFormat:@"yyyy-MM-dd HH:mm"];
|
|
|
|
|
distanceStr = [df2 stringFromDate:beDate];
|
|
|
|
|
|
|
|
|
|
return distanceStr;
|
|
|
|
|
|
|
|
|
|
// NSDateFormatter * df = [[NSDateFormatter alloc]init];
|
|
|
|
|
// [df setDateFormat:@"HH:mm"];
|
|
|
|
|
// NSString * timeStr = [df stringFromDate:beDate];
|
|
|
|
|
//
|
|
|
|
|
// [df setDateFormat:@"dd"];
|
|
|
|
|
// NSString * nowDay = [df stringFromDate:[NSDate date]];
|
|
|
|
|
// NSString * lastDay = [df stringFromDate:beDate];
|
|
|
|
|
//
|
|
|
|
|
// if (distanceTime < 60) {//小于一分钟
|
|
|
|
|
// distanceStr = @"刚刚";
|
|
|
|
|
// }
|
|
|
|
|
// else if (distanceTime <60*60) {//时间小于一个小时
|
|
|
|
|
// distanceStr = [NSString stringWithFormat:@"%ld分钟前",(long)distanceTime/60];
|
|
|
|
|
// }
|
|
|
|
|
// else if(distanceTime <24*60*60 && [nowDay integerValue] == [lastDay integerValue]){//时间小于一天
|
|
|
|
|
// distanceStr = [NSString stringWithFormat:@"今天 %@",timeStr];
|
|
|
|
|
// }
|
|
|
|
|
// else if(distanceTime<24*60*60*2 && [nowDay integerValue] != [lastDay integerValue]){
|
|
|
|
|
//
|
|
|
|
|
// if ([nowDay integerValue] - [lastDay integerValue] ==1 || ([lastDay integerValue] - [nowDay integerValue] > 10 && [nowDay integerValue] == 1)) {
|
|
|
|
|
// distanceStr = [NSString stringWithFormat:@"昨天 %@",timeStr];
|
|
|
|
|
// }
|
|
|
|
|
// else{
|
|
|
|
|
// [df setDateFormat:@"MM-dd HH:mm"];
|
|
|
|
|
// distanceStr = [df stringFromDate:beDate];
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// else if(distanceTime <24*60*60*365){
|
|
|
|
|
// [df setDateFormat:@"MM-dd HH:mm"];
|
|
|
|
|
// distanceStr = [df stringFromDate:beDate];
|
|
|
|
|
// }
|
|
|
|
|
// else{
|
|
|
|
|
// [df setDateFormat:@"yyyy-MM-dd HH:mm"];
|
|
|
|
|
// distanceStr = [df stringFromDate:beDate];
|
|
|
|
|
// }
|
|
|
|
|
// return distanceStr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ (void)setBtnUpImageDownTitle:(UIButton *)btn{
|
|
|
|
|
CGSize btnSize = btn.bounds.size;
|
|
|
|
|
UIImage *image = btn.imageView.image;
|
|
|
|
|
NSString *title = btn.titleLabel.text;
|
|
|
|
|
CGSize titleSize = [title boundingRectWithSize:CGSizeMake(MAXFLOAT, btn.titleLabel.frame.size.height)
|
|
|
|
|
options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:btn.titleLabel.font} context:nil].size;
|
|
|
|
|
btn.titleEdgeInsets = UIEdgeInsetsMake(image.size.height, -image.size.width, 0, 0);
|
|
|
|
|
if ([CurrentSystemVersion doubleValue] >= 13.0) {
|
|
|
|
|
btn.imageEdgeInsets = UIEdgeInsetsMake(-titleSize.height, btnSize.width / 2 - image.size.width/2 ,
|
|
|
|
|
0.5*titleSize.height, 0);
|
|
|
|
|
}else{
|
|
|
|
|
btn.imageEdgeInsets = UIEdgeInsetsMake(-titleSize.height, image.size.width/2 ,
|
|
|
|
|
0.5*titleSize.height, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
获取当前改账号的登录类型
|
|
|
|
|
@return 1 手机号登录 2 微信号登录 3 imei号登录 (体验客)
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
+ (int)getNowAccoutType:(User*)user{
|
|
|
|
|
int type = 0;
|
|
|
|
|
if(user.loginName != nil){
|
|
|
|
|
if(user.account_status.intValue == 1){
|
|
|
|
|
// 手机账号
|
|
|
|
|
type = 1;
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
//imei 登录的
|
|
|
|
|
type = 3;
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
//微信的
|
|
|
|
|
type = 2;
|
|
|
|
|
}
|
|
|
|
|
return type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ (UIColor *)colorAtPixel:(CGPoint)point{
|
|
|
|
|
UIImage *image = [self fullScreenshots];
|
|
|
|
|
if (!CGRectContainsPoint(CGRectMake(0.0f, 0.0f, image.size.width, image.size.height), point)) {
|
|
|
|
|
return nil;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NSInteger pointX = trunc(point.x);
|
|
|
|
|
NSInteger pointY = trunc(point.y);
|
|
|
|
|
CGImageRef cgImage = image.CGImage;
|
|
|
|
|
NSUInteger width = image.size.width;
|
|
|
|
|
NSUInteger height = image.size.height;
|
|
|
|
|
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
|
|
|
|
int bytesPerPixel = 4;
|
|
|
|
|
int bytesPerRow = bytesPerPixel * 1;
|
|
|
|
|
NSUInteger bitsPerComponent = 8;
|
|
|
|
|
unsigned char pixelData[4] = { 0, 0, 0, 0 };
|
|
|
|
|
CGContextRef context = CGBitmapContextCreate(pixelData,
|
|
|
|
|
1,
|
|
|
|
|
1,
|
|
|
|
|
bitsPerComponent,
|
|
|
|
|
bytesPerRow,
|
|
|
|
|
colorSpace,
|
|
|
|
|
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
|
|
|
|
|
CGColorSpaceRelease(colorSpace);
|
|
|
|
|
CGContextSetBlendMode(context, kCGBlendModeCopy);
|
|
|
|
|
|
|
|
|
|
CGContextTranslateCTM(context, -pointX, pointY-(CGFloat)height);
|
|
|
|
|
CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height), cgImage);
|
|
|
|
|
CGContextRelease(context);
|
|
|
|
|
|
|
|
|
|
CGFloat red = (CGFloat)pixelData[0] / 255.0f;
|
|
|
|
|
CGFloat green = (CGFloat)pixelData[1] / 255.0f;
|
|
|
|
|
CGFloat blue = (CGFloat)pixelData[2] / 255.0f;
|
|
|
|
|
CGFloat alpha = (CGFloat)pixelData[3] / 255.0f;
|
|
|
|
|
|
|
|
|
|
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
|
|
|
|
|
}
|
|
|
|
|
+ (UIImage *)fullScreenshots{
|
|
|
|
|
UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
|
|
|
|
|
UIGraphicsBeginImageContext(screenWindow.frame.size);//全屏截图,包括window
|
|
|
|
|
[screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
|
|
|
|
|
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
|
|
|
|
|
return viewImage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
获取 关系名字数组
|
|
|
|
|
*/
|
|
|
|
|
+(NSArray *)getRelationshipNameArr:(NSInteger)deviceType
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (deviceType == 3)
|
|
|
|
|
return @[@"家人",@"朋友",@"自定义"];
|
|
|
|
|
else
|
|
|
|
|
return @[@"爸爸",
|
|
|
|
|
@"妈妈",
|
|
|
|
|
@"爷爷",
|
|
|
|
|
@"奶奶",
|
|
|
|
|
@"外公",
|
|
|
|
|
@"外婆",
|
|
|
|
|
@"叔叔",
|
|
|
|
|
@"阿姨",
|
|
|
|
|
@"自定义"];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
获取 关系未选中的图片数组
|
|
|
|
|
*/
|
|
|
|
|
+(NSArray *)getUnclickRelationshipImageArr:(NSInteger)deviceType{
|
|
|
|
|
|
|
|
|
|
// if (deviceType == 3)
|
|
|
|
|
// return @[@"icon_unclick_father_head_portrait",
|
|
|
|
|
// @"icon_unclick_uncle_head_portrait",
|
|
|
|
|
// @"icon_unclick_relative_head_portrait"];
|
|
|
|
|
// else
|
|
|
|
|
// return @[@"icon_unclick_father_head_portrait",
|
|
|
|
|
// @"icon_unclick_mother_head_portrait",
|
|
|
|
|
// @"icon_unclick_yy_head_portrait",
|
|
|
|
|
// @"icon_unclick_nn_head_portrait",
|
|
|
|
|
// @"icon_unclick_waigong_head_portrait",
|
|
|
|
|
// @"icon_unclick_waipo_head_portrait",
|
|
|
|
|
// @"icon_unclick_uncle_head_portrait",
|
|
|
|
|
// @"icon_unclick_aunt_head_portrait",
|
|
|
|
|
// @"icon_unclick_relative_head_portrait"];
|
|
|
|
|
|
|
|
|
|
if (deviceType == 3)
|
|
|
|
|
return @[@"icon_click_father_head_portrait",
|
|
|
|
|
@"icon_click_uncle_head_portrait",
|
|
|
|
|
@"icon_click_relative_head_portrait"];
|
|
|
|
|
else
|
|
|
|
|
return @[@"icon_click_father_head_portrait",
|
|
|
|
|
@"icon_click_mother_head_portrait",
|
|
|
|
|
@"icon_click_yy_head_portrait",
|
|
|
|
|
@"icon_click_nn_head_portrait",
|
|
|
|
|
@"icon_click_waigong_head_portrait",
|
|
|
|
|
@"icon_click_waipo_head_portrait",
|
|
|
|
|
@"icon_click_uncle_head_portrait",
|
|
|
|
|
@"icon_click_aunt_head_portrait",
|
|
|
|
|
@"icon_click_relative_head_portrait"];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
获取 关系选中的图片数组
|
|
|
|
|
*/
|
|
|
|
|
+(NSArray *)getClickRelationshipImageArr:(NSInteger)deviceType{
|
|
|
|
|
|
|
|
|
|
if (deviceType == 3)
|
|
|
|
|
return @[@"icon_click_father_head_portrait",
|
|
|
|
|
@"icon_click_uncle_head_portrait",
|
|
|
|
|
@"icon_click_relative_head_portrait"];
|
|
|
|
|
else
|
|
|
|
|
return @[@"icon_click_father_head_portrait",
|
|
|
|
|
@"icon_click_mother_head_portrait",
|
|
|
|
|
@"icon_click_yy_head_portrait",
|
|
|
|
|
@"icon_click_nn_head_portrait",
|
|
|
|
|
@"icon_click_waigong_head_portrait",
|
|
|
|
|
@"icon_click_waipo_head_portrait",
|
|
|
|
|
@"icon_click_uncle_head_portrait",
|
|
|
|
|
@"icon_click_aunt_head_portrait",
|
|
|
|
|
@"icon_click_relative_head_portrait"];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
根据 关系id 获取 关系名字
|
|
|
|
|
*/
|
|
|
|
|
+(NSString *)getRelationshipNameWithCodeID:(int)code deviceType:(NSInteger)deviceType{
|
|
|
|
|
if (code != 9) {
|
|
|
|
|
return [self getRelationshipNameArr:deviceType][code-1];
|
|
|
|
|
}else{
|
|
|
|
|
return [self getRelationshipNameArr:deviceType].lastObject;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
根据 关系id 获取 关系未选中的图片
|
|
|
|
|
*/
|
|
|
|
|
+(UIImage *)getUnclickRelationshipImageWithCodeID:(int)code deviceType:(NSInteger)deviceType{
|
|
|
|
|
if (code != 9) {
|
|
|
|
|
return [UIImage imageNamed:[self getUnclickRelationshipImageArr:deviceType][code-1]];
|
|
|
|
|
}else{
|
|
|
|
|
return [UIImage imageNamed:[self getUnclickRelationshipImageArr:deviceType].lastObject];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
根据 关系id 获取 关系选中的图片
|
|
|
|
|
*/
|
|
|
|
|
+(UIImage *)getClickRelationshipImageWithCodeID:(int)code deviceType:(NSInteger)deviceType{
|
|
|
|
|
if (code != 9) {
|
|
|
|
|
return [UIImage imageNamed:[self getClickRelationshipImageArr:deviceType][code-1]];
|
|
|
|
|
}else{
|
|
|
|
|
return [UIImage imageNamed:[self getClickRelationshipImageArr:deviceType].lastObject];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#pragma mark 获取文本宽度
|
|
|
|
|
+ (CGFloat)getWidthWithText:(NSString *)text withFont:(UIFont *)font {
|
|
|
|
|
CGSize size = [text sizeWithAttributes:@{NSFontAttributeName:font}];
|
|
|
|
|
return size.width;
|
|
|
|
|
}
|
|
|
|
|
@end
|