This commit is contained in:
lianxiang 2018-09-26 00:33:06 +08:00
parent 69522b22fc
commit d0230f55ed
68 changed files with 1599 additions and 209 deletions

View File

@ -224,6 +224,13 @@
83BFAE77213CDE91004EF801 /* GiGaSettingsViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 83BFAE75213CDE91004EF801 /* GiGaSettingsViewCell.m */; };
83BFAE78213CDE91004EF801 /* GiGaSettingsViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 83BFAE76213CDE91004EF801 /* GiGaSettingsViewCell.xib */; };
83BFAE7B213D3F3A004EF801 /* MaskTimeCircularProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 83BFAE7A213D3F3A004EF801 /* MaskTimeCircularProgressView.m */; };
83C78A0F215872F80083DDD9 /* MasHistoryFirstViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 83C78A0D215872F80083DDD9 /* MasHistoryFirstViewCell.m */; };
83C78A10215872F80083DDD9 /* MasHistoryFirstViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 83C78A0E215872F80083DDD9 /* MasHistoryFirstViewCell.xib */; };
83C78A14215873170083DDD9 /* MaskHistoryListViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 83C78A12215873170083DDD9 /* MaskHistoryListViewCell.m */; };
83C78A15215873170083DDD9 /* MaskHistoryListViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 83C78A13215873170083DDD9 /* MaskHistoryListViewCell.xib */; };
83C78A192159D74D0083DDD9 /* UIImage+LogoQrCode.m in Sources */ = {isa = PBXBuildFile; fileRef = 83C78A182159D74D0083DDD9 /* UIImage+LogoQrCode.m */; };
83C78A1C2159DD920083DDD9 /* UIImage+ShotImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 83C78A1B2159DD920083DDD9 /* UIImage+ShotImage.m */; };
83D3832D215A2CF5009E8669 /* MaskHistryRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 83D3832C215A2CF5009E8669 /* MaskHistryRecord.m */; };
83E40B2B21218B6F008149C4 /* GiGaExercisesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83E40B2A21218B6F008149C4 /* GiGaExercisesViewController.m */; };
83E40B2F21218BA0008149C4 /* GiGaUserViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83E40B2E21218BA0008149C4 /* GiGaUserViewController.m */; };
/* End PBXBuildFile section */
@ -632,6 +639,18 @@
83BFAE76213CDE91004EF801 /* GiGaSettingsViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GiGaSettingsViewCell.xib; sourceTree = "<group>"; };
83BFAE79213D3F3A004EF801 /* MaskTimeCircularProgressView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MaskTimeCircularProgressView.h; sourceTree = "<group>"; };
83BFAE7A213D3F3A004EF801 /* MaskTimeCircularProgressView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MaskTimeCircularProgressView.m; sourceTree = "<group>"; };
83C78A0C215872F80083DDD9 /* MasHistoryFirstViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MasHistoryFirstViewCell.h; sourceTree = "<group>"; };
83C78A0D215872F80083DDD9 /* MasHistoryFirstViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MasHistoryFirstViewCell.m; sourceTree = "<group>"; };
83C78A0E215872F80083DDD9 /* MasHistoryFirstViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MasHistoryFirstViewCell.xib; sourceTree = "<group>"; };
83C78A11215873170083DDD9 /* MaskHistoryListViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MaskHistoryListViewCell.h; sourceTree = "<group>"; };
83C78A12215873170083DDD9 /* MaskHistoryListViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MaskHistoryListViewCell.m; sourceTree = "<group>"; };
83C78A13215873170083DDD9 /* MaskHistoryListViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MaskHistoryListViewCell.xib; sourceTree = "<group>"; };
83C78A172159D74D0083DDD9 /* UIImage+LogoQrCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIImage+LogoQrCode.h"; sourceTree = "<group>"; };
83C78A182159D74D0083DDD9 /* UIImage+LogoQrCode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIImage+LogoQrCode.m"; sourceTree = "<group>"; };
83C78A1A2159DD920083DDD9 /* UIImage+ShotImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIImage+ShotImage.h"; sourceTree = "<group>"; };
83C78A1B2159DD920083DDD9 /* UIImage+ShotImage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ShotImage.m"; sourceTree = "<group>"; };
83D3832B215A2CF5009E8669 /* MaskHistryRecord.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MaskHistryRecord.h; sourceTree = "<group>"; };
83D3832C215A2CF5009E8669 /* MaskHistryRecord.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MaskHistryRecord.m; sourceTree = "<group>"; };
83E40B2921218B6F008149C4 /* GiGaExercisesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiGaExercisesViewController.h; sourceTree = "<group>"; };
83E40B2A21218B6F008149C4 /* GiGaExercisesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiGaExercisesViewController.m; sourceTree = "<group>"; };
83E40B2D21218BA0008149C4 /* GiGaUserViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiGaUserViewController.h; sourceTree = "<group>"; };
@ -997,6 +1016,10 @@
8345C13521414D3B00051717 /* NSString+Unicode.m */,
83773FC021479FED0014EE4C /* UIColor+HexColor.h */,
83773FC121479FED0014EE4C /* UIColor+HexColor.m */,
83C78A172159D74D0083DDD9 /* UIImage+LogoQrCode.h */,
83C78A182159D74D0083DDD9 /* UIImage+LogoQrCode.m */,
83C78A1A2159DD920083DDD9 /* UIImage+ShotImage.h */,
83C78A1B2159DD920083DDD9 /* UIImage+ShotImage.m */,
);
path = Category;
sourceTree = "<group>";
@ -1075,6 +1098,8 @@
8342FD852150FD5200D141F4 /* VersionModel.m */,
83A1DDB021574807006DE881 /* GIGaFeedKind.h */,
83A1DDB121574807006DE881 /* GIGaFeedKind.m */,
83D3832B215A2CF5009E8669 /* MaskHistryRecord.h */,
83D3832C215A2CF5009E8669 /* MaskHistryRecord.m */,
);
path = Model;
sourceTree = "<group>";
@ -1082,6 +1107,7 @@
8361B42A212180A100238FEB /* View */ = {
isa = PBXGroup;
children = (
83C78A0B215872740083DDD9 /* HistoryView */,
8382DFA3215622C600BBA5A5 /* FeedViews */,
8342FD7E2150F94F00D141F4 /* AppVerionDescCells */,
838762CF214B9CAA0039D241 /* userInfoView */,
@ -1600,6 +1626,19 @@
path = NYSliderPopover;
sourceTree = "<group>";
};
83C78A0B215872740083DDD9 /* HistoryView */ = {
isa = PBXGroup;
children = (
83C78A0C215872F80083DDD9 /* MasHistoryFirstViewCell.h */,
83C78A0D215872F80083DDD9 /* MasHistoryFirstViewCell.m */,
83C78A0E215872F80083DDD9 /* MasHistoryFirstViewCell.xib */,
83C78A11215873170083DDD9 /* MaskHistoryListViewCell.h */,
83C78A12215873170083DDD9 /* MaskHistoryListViewCell.m */,
83C78A13215873170083DDD9 /* MaskHistoryListViewCell.xib */,
);
path = HistoryView;
sourceTree = "<group>";
};
83E40B2C21218B7E008149C4 /* LogIn */ = {
isa = PBXGroup;
children = (
@ -1764,6 +1803,7 @@
83BFAE6D213CD0E3004EF801 /* GiGaMineInfoViewCell.xib in Resources */,
8382DFA82156247F00BBA5A5 /* GiGaFeedLeiIingViewCell.xib in Resources */,
8376B82E2154A35100AB79F8 /* MaskTimeTimeViewCell.xib in Resources */,
83C78A10215872F80083DDD9 /* MasHistoryFirstViewCell.xib in Resources */,
8361B3D6212155C300238FEB /* LaunchScreen.storyboard in Resources */,
838762E3214B9F580039D241 /* GiGaUserSexViewCell.xib in Resources */,
838388DA2130046D00D14C53 /* emojizone.mp4 in Resources */,
@ -1803,6 +1843,7 @@
8382DFB221562B0A00BBA5A5 /* GIGaFeedQQViewCell.xib in Resources */,
8338F6B12142182200B4780B /* MaskTime.png in Resources */,
83346ACF212BD7830054D597 /* GiGaWebViewController.xib in Resources */,
83C78A15215873170083DDD9 /* MaskHistoryListViewCell.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1961,6 +2002,7 @@
83835BA0212E43BD001480F2 /* GiGaMasssagesVC.m in Sources */,
8357ADCD2123C091000816F2 /* GiGaNetManager.m in Sources */,
838388D4212FB7D700D14C53 /* JXTAlertView.m in Sources */,
83D3832D215A2CF5009E8669 /* MaskHistryRecord.m in Sources */,
83901178214E20B2004CA790 /* LYSDatePickerItem.m in Sources */,
8342FD8A2151095100D141F4 /* AppVersionLogoCell.m in Sources */,
8384F0EB21533542002C19F0 /* MaskResultMinViewCell.m in Sources */,
@ -1969,6 +2011,7 @@
8382DFEE21564A1F00BBA5A5 /* SJPhotoPickerManager.m in Sources */,
83A1DDB221574807006DE881 /* GIGaFeedKind.m in Sources */,
83901172214E20B2004CA790 /* LYSDatePickerTypeDayAndTimeDelegate.m in Sources */,
83C78A1C2159DD920083DDD9 /* UIImage+ShotImage.m in Sources */,
835060A9212D38EE007E6220 /* GiGaStartAdView.m in Sources */,
83928FFA2134D8F60077D2E8 /* GiGaFlyingCommitInputView.m in Sources */,
8390116D214E20B2004CA790 /* LYSDateBaseViewController.m in Sources */,
@ -1986,6 +2029,7 @@
83773FBF214791E10014EE4C /* GIGaQuestionSlider.m in Sources */,
83901179214E20B2004CA790 /* LYSDatePickerTypeBase.m in Sources */,
835060A2212D1225007E6220 /* GiGaMeViewController.m in Sources */,
83C78A192159D74D0083DDD9 /* UIImage+LogoQrCode.m in Sources */,
8361B3CB212155C200238FEB /* AppDelegate.m in Sources */,
8382DFB92156389200BBA5A5 /* GIGaFeedImagsCollectionCell.m in Sources */,
8351474621521CC500B25A88 /* GiGaChangePhoneNumberVC.m in Sources */,
@ -2021,6 +2065,7 @@
833DE8E52150169F009D4329 /* JYAddressPicker.m in Sources */,
834127212152AEFB001DDB36 /* GIGaMaskTimeUseRecordVC.m in Sources */,
83901171214E20B2004CA790 /* LYSDatePickerLabel.m in Sources */,
83C78A14215873170083DDD9 /* MaskHistoryListViewCell.m in Sources */,
838762E2214B9F580039D241 /* GiGaUserSexViewCell.m in Sources */,
8382DFAC215626CE00BBA5A5 /* GiGaFeedContentViewCell.m in Sources */,
839290052134F4240077D2E8 /* LXDanMuTrackView.m in Sources */,
@ -2049,6 +2094,7 @@
83BFAE70213CDB29004EF801 /* GiMaskTimeHistoryVC.m in Sources */,
8382DFEA21564A1F00BBA5A5 /* SJPhotoAlbumsController.m in Sources */,
83A22718212ABDFF00B3E75C /* GiGaBlockButton.m in Sources */,
83C78A0F215872F80083DDD9 /* MasHistoryFirstViewCell.m in Sources */,
8382DFED21564A1F00BBA5A5 /* SJPhotoPickerNavController.m in Sources */,
83928FFE2134F37D0077D2E8 /* GiGaSocketRocketUtility.m in Sources */,
83A2270C212A97ED00B3E75C /* MaskViewBootomWaringView.m in Sources */,

View File

@ -42,6 +42,11 @@
//
[WXApi registerApp:WXin_APPID];
[WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString *log) {
NSLog(@"%@",log);
}];
//bugly
[Bugly startWithAppId:nil];
//
@ -62,7 +67,7 @@
//WXApiDelegate
- (void)onReq:(BaseReq *)req{
}
- (void)onResp:(BaseResp *)resp{

View File

@ -44,6 +44,9 @@
[[GiGaUserManager shareUser] synsisUserInfo:nil userErrorMsgBlock:^(NSDictionary *errorCodemsg) {
if ([errorCodemsg[@"code"] integerValue] == 401) {
[[GiGaUserManager shareUser] loginOut];
NC_POST_NAME_OBJECT(kUserLogOutNotify, nil);
//token
[GiGaBaseAPiRequest userTokenTimeOutGologinFromVC:self.window.rootViewController];
}

View File

@ -0,0 +1,13 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "btn_talk@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

View File

@ -1,9 +1,17 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "bg_moreandmore_red@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {

View File

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "history_heart@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

View File

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "history_rule@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,9 +1,17 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "img_camera@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {

View File

@ -1,9 +1,17 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "img_holder@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {

View File

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "tab_indicator@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

View File

@ -0,0 +1,16 @@
//
// UIImage+LogoQrCode.h
// GIGA
//
// Created by lianxiang on 2018/9/25.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface UIImage (LogoQrCode)
+(UIImage *)createQrImageWith:(UIImage *)logo logoSize:(CGSize )size qrText:(NSString *)text;
@end

View File

@ -0,0 +1,52 @@
//
// UIImage+LogoQrCode.m
// GIGA
//
// Created by lianxiang on 2018/9/25.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "UIImage+LogoQrCode.h"
@implementation UIImage (LogoQrCode)
+(UIImage *)createQrImageWith:(UIImage *)logo logoSize:(CGSize )size qrText:(NSString *)text
{
//NSArray *filter = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];
//
CIFilter *filterImage = [CIFilter filterWithName:@"CIQRCodeGenerator"];
//
[filterImage setDefaults];
//
NSData *dataImage = [text dataUsingEncoding:NSUTF8StringEncoding];
//
NSLog(@"%@", filterImage.inputKeys);
// KVC
[filterImage setValue:dataImage forKey:@"inputMessage"];
//
CIImage *outputImage = [filterImage outputImage];
outputImage = [outputImage imageByApplyingTransform:CGAffineTransformMakeScale(20, 20)];
//
UIImage *image = [UIImage imageWithCIImage:outputImage];
//
// , <>
UIGraphicsBeginImageContext(image.size);
//
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
//
UIImage *smallImage = logo;
[smallImage drawInRect:CGRectMake((image.size.width - 100) / 2, (image.size.width - 100) / 2, 100, 100)];
//
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
//
UIGraphicsEndImageContext();
return finalImage;
}
@end

View File

@ -0,0 +1,15 @@
//
// UIImage+ShotImage.h
// GIGA
//
// Created by lianxiang on 2018/9/25.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface UIImage (ShotImage)
//截图tableviewi
+(UIImage *)saveLongImage:(UITableView *)table;
@end

View File

@ -0,0 +1,39 @@
//
// UIImage+ShotImage.m
// GIGA
//
// Created by lianxiang on 2018/9/25.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "UIImage+ShotImage.h"
@implementation UIImage (ShotImage)
+(UIImage *)saveLongImage:(UITableView *)table {
UIImage* image = nil;
// NOYES
UIGraphicsBeginImageContextWithOptions(table.contentSize, YES, [UIScreen mainScreen].scale);
CGPoint savedContentOffset = table.contentOffset;
CGRect savedFrame = table.frame;
table.contentOffset = CGPointZero;
table.frame = CGRectMake(0, 0, table.contentSize.width, table.contentSize.height);
[table.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
table.contentOffset = savedContentOffset;
table.frame = savedFrame;
UIGraphicsEndImageContext();
return image;
}
@end

View File

@ -68,4 +68,6 @@
//
+(int)convertToInt:(NSString*)strtemp;
+(NSString*)dictionaryToJson:(NSDictionary *)dic;
@end

View File

@ -281,4 +281,17 @@
}
return strlength;
}
+(NSString*)dictionaryToJson:(NSDictionary *)dic
{
NSError *parseError =nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
@end

View File

@ -19,7 +19,7 @@ typedef void (^responseBlock)(NSDictionary *responseDict, NSDictionary *response
success:(void (^)(id response))success
failure:(void (^)(NSError *err))failure;
// 测试题 登录 body 传参
// 测试题 登录 .. body 传参
+(void)userbodyRequest:(NSString *)url params:(NSDictionary *)param completionHandler:(nullable void (^)(NSURLResponse *response, NSDictionary *resDic, NSError * _Nullable error))completionHandler;
//上传图片 1张

View File

@ -102,34 +102,61 @@
}];
}
//body
//body
+(void)userbodyRequest:(NSString *)url params:(NSDictionary *)param completionHandler:(nullable void (^)(NSURLResponse *response,NSDictionary *resDic, NSError * _Nullable error))completionHandler
{
//NSString *jsonStr = [GiGaHelper dictionaryToJson:param];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURL *baseUrl = [NSURL URLWithString:[GiGaServerConfig getMainUrl]];
AFHTTPSessionManager*manager=[[AFHTTPSessionManager alloc] initWithBaseURL:baseUrl sessionConfiguration:configuration];
manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"application/json",@"text/json", @"text/javascript",@"text/html",@"text/plain",nil]];
NSString *token = [GiGaUserDefault getCurentToken];
NSMutableURLRequest *requst = [[AFJSONRequestSerializer serializer]
requestWithMethod:@"POST" URLString:url parameters:nil error:nil];
requst.timeoutInterval = 20.f;
if (token) {
[manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
[requst setValue:token forHTTPHeaderField:@"token"];
}
NSMutableURLRequest *requst = [[AFJSONRequestSerializer serializer]
requestWithMethod:@"POST" URLString:url parameters:param error:nil];
requst.timeoutInterval = 10.f;
[requst setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[requst setValue:@"application/json" forHTTPHeaderField:@"Accept"];
if (param && param.count > 0){
NSError *parseError =nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:param options:NSJSONWritingPrettyPrinted error:&parseError];
// NSData *jsonData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
[requst setHTTPBody:jsonData];
}
NSURLSessionDataTask *task = [manager dataTaskWithRequest:requst uploadProgress:^(NSProgress * _Nonnull uploadProgress) {
} downloadProgress:^(NSProgress * _Nonnull downloadProgress) {
} completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (completionHandler) {
completionHandler(response,responseObject,error);
}
NSDictionary *responseDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
if (completionHandler) {
completionHandler(response,responseDic,error);
}
}];
[task resume];
}
//1
+(void)uploadImage:(NSString *)url
imgData:(NSData *)imgData

View File

@ -32,4 +32,6 @@
success:(void (^)(id response))success
failure:(void (^)(NSError *err))failure;
//+(void)shareMessageToWX:()
@end

View File

@ -24,4 +24,5 @@
+(UIImage *)getUserFeedbackImag:(NSString *)imageName;
+(void)delectAllfeedimages;
@end

View File

@ -8,6 +8,7 @@
#import <Foundation/Foundation.h>
#import "GiGaUser.h"
#import "MaskTestResult.h"
typedef void (^userDataresponseBlock)(GiGaUser *user);
@ -16,6 +17,7 @@ typedef void (^userErrorMsgBlock)(NSDictionary *errorCodemsg);
@interface GiGaUserManager : NSObject
@property(nonatomic,strong) GiGaUser *user;
@property(nonatomic,strong) MaskTestResult *testReult;
+(instancetype)shareUser;
- (void)saveUser:(GiGaUser *)user;
@ -29,4 +31,8 @@ typedef void (^userErrorMsgBlock)(NSDictionary *errorCodemsg);
-(void)synsisUserInfo:(userDataresponseBlock)block userErrorMsgBlock:(userErrorMsgBlock)errorCodeMsg;
//保存肤质测试记录
//-(void)saveLatestUserTestRecord:(MaskTestResult *)maskTestResult;
//-(MaskTestResult *)latestMaskTestResult;
@end

View File

@ -20,6 +20,7 @@ const static NSInteger GIGADB_USER_VER = 0;//当前数据库版本号
@property (nonatomic,strong) NSMutableArray *userArr;
@property (nonatomic,copy) NSString *userTabId;
@end
@implementation GiGaUserManager
@ -140,4 +141,12 @@ const static NSInteger GIGADB_USER_VER = 0;//当前数据库版本号
}
//
#pragma mark
-(void)saveLatestUserTestRecord:(MaskTestResult *)maskTestResult{
[_store createTableWithName:@"gigaLastestSkinTest"];
}
@end

View File

@ -17,8 +17,10 @@
#define kApiOccuption @"sys/sysdict/v1/maskoccupation"
//修改用户信息
#define kFixUserInfo @"user/v1/editinfo"
//头像上传 上传多张反馈
#define kUploadAvator @"sys/oss/v1/upload"
//头像上传
#define kUploadAvator @"user/v1/editheadimg"
//意见反馈 单张
#define kUploadFeed @"sys/oss/v1/upload"
//版本说明
@ -34,12 +36,20 @@
//找回密码发送验证码
#define kApiChangePassSendCode @"msg/sms/v1/retrievesendcode"
//异步验证手机验证码
#define kApiVersifyPhoneCode @"v1/user/v1/validateSmsCode"
#define kApiVersifyPhoneCode @"user/v1/validateSmsCode"
//获取意见反馈类型 (设置意见反馈)
#define kApiGetFeedList @"sys/sysdict/v1/maskproposaltype"
//意见建议
#define kAPiUpLoadFeeeds @"sys/proposal/v1/save"
//使用记录
#define kApiUserHistoryList @"activity/maskuselog/v1/list"
//测试结果获取
#define kAiSkinTestResult @"activity/maskquestion/v1/result"
//获取最后一次测试结果
#define kApiGetLatestTest @"activity/maskquestionresultlog/v1/finalresult"
//获取测试题列表
#define kApiSkinTestQuestionList @"activity/maskquestion/v1/list"
#endif /* ApiRequestConfig_h */

View File

@ -16,6 +16,7 @@
#import <JSONModel/JSONModel.h>
#import <UMCommon/UMCommon.h>
#import <UMAnalytics/MobClick.h>
#import "WXApiObject.h"
#endif
#import "GiGaUserDefault.h"

View File

@ -21,14 +21,14 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<webView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sjU-k1-sKC">
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="668"/>
<color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</webView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="sjU-k1-sKC" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="1H8-sC-8Mx"/>
<constraint firstAttribute="bottom" secondItem="sjU-k1-sKC" secondAttribute="bottom" constant="20" id="6Nb-OM-pgQ"/>
<constraint firstAttribute="bottom" secondItem="sjU-k1-sKC" secondAttribute="bottom" constant="-1" id="6Nb-OM-pgQ"/>
<constraint firstItem="sjU-k1-sKC" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Hu9-3C-rEq"/>
<constraint firstAttribute="trailing" secondItem="sjU-k1-sKC" secondAttribute="trailing" id="Ray-xd-2vY"/>
</constraints>

View File

@ -61,12 +61,15 @@
-(void)mycuntomSwitchAction:(id)sender{
LXCustomSwith *nkswitch = (LXCustomSwith *)sender;
if (nkswitch.isOn)
NSLog(@"switchPressed ON");
else
[[LXDanMuManager shareInstance] destory];
[self destorySocket];
NC_POST_NAME_OBJECT(@"UserCloseChatRoomAction", nil);
[self dismissViewControllerAnimated:YES completion:nil];
NSLog(@"switchPressed OFF");
}
@ -74,6 +77,7 @@
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NC_ADD_TARGET_NAME_OBJECT(self, @selector(maskTimeEnd), kUserNoti_MASKEND, nil);
[IQKeyboardManager sharedManager].enable = NO;
[[IQKeyboardManager sharedManager] setEnableAutoToolbar:NO];
}

View File

@ -51,12 +51,32 @@
@property(nonatomic,strong) UIImageView *swipeGaurdimagView;
@property(nonatomic,strong) UIButton *startMaskButton;
@property(nonatomic,strong) UIButton *startTestButton;
//
@property(nonatomic,strong) UIButton *openDanmuButton;
@end
@implementation GiGaMaskTaskViewController
#pragma mark - property
- (UIButton *)openDanmuButton{
if (!_openDanmuButton) {
_openDanmuButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_openDanmuButton addTarget:self action:@selector(openDanmuButtonAction) forControlEvents:UIControlEventTouchUpInside];
_openDanmuButton.backgroundColor = GIGARGB(112, 0, 0, 1);
_openDanmuButton.frame = CGRectMake(KMainW - 25 -50,SAFE_NAV_HEIGHT + 15, 50, 20);
_openDanmuButton.layer.masksToBounds = YES;
_openDanmuButton.layer.cornerRadius = 10;
NSAttributedString *att = [GiGaHelper stringWithText:@"弹幕" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTMEDIUM(10) leterSpace:0];
[_openDanmuButton setAttributedTitle:att forState:UIControlStateNormal];
[_openDanmuButton setImage:[UIImage imageNamed:@"btn_talk"] forState:UIControlStateNormal];
//_openDanmuButton.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
_openDanmuButton.titleEdgeInsets = UIEdgeInsetsMake(0, -25, 0, 25);
}
return _openDanmuButton;
}
//
- (UIImageView *)maskImageView{
if (!_maskImageView) {
@ -174,7 +194,7 @@
[super viewWillAppear:animated];
//
[self.navigationController.navigationBar setTranslucent:YES];
self.openDanmuButton.hidden = NO;
}
@ -184,11 +204,19 @@
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
BOOL showAppGaurd = [GiGaUserDefault isShowedAppGaurd];
if (showAppGaurd == NO) {
[self showAPPappGaurdView];
//  app
// BOOL showAppGaurd = [GiGaUserDefault isShowedAppGaurd];
// if (showAppGaurd == NO) {
// [self showAPPappGaurdView];
// }
//
BOOL isshowGaurd = [GiGaUserDefault isShowedGaurd];
if (isshowGaurd == NO) {
NSLog(@"%d",(int)isshowGaurd );
[self showUserGaurdView];
}
//[self showUserGaurdView];
}
-(void)viewWillDisappear:(BOOL)animated{
@ -318,7 +346,7 @@
-(void)initUI{
self.view.backgroundColor = GIGA_MAIN_BGCOLOR;
[self.view addSubview:self.openDanmuButton];
[self.view addSubview:self.faceView];
[self.view addSubview:self.maskImageView];
[self.view addSubview:self.hairImageView];
@ -479,6 +507,7 @@
-(void)maskTimeEnd{
NC_POST_NAME_OBJECT(kUserNoti_MASKEND, nil);
//
AppDelegate *delegate =(AppDelegate *) [[UIApplication sharedApplication] delegate];
delegate.isMasking = NO;
@ -502,8 +531,7 @@
// resultVC.model = model;
// [self.navigationController pushViewController:resultVC animated:YES];
//[self showAlertGoShareMaskTime];
// [self showAlertGoShareMaskTime];
GiGaQuestionVC *questionVC = [[GiGaQuestionVC alloc] init];
[self.navigationController pushViewController:questionVC animated:YES];
@ -511,13 +539,19 @@
}
-(void)addNotify{
//
NC_ADD_TARGET_NAME_OBJECT(self, @selector(guardViewDissmiss), USER_GUARD_DISSMISS, nil) ;
NC_ADD_TARGET_NAME_OBJECT(self, @selector(appGauardViewDissmiss),APP_GUARD_DISSMISS, nil) ;
NC_ADD_TARGET_NAME_OBJECT(self, @selector(pushToAppAdDetailView),APP_PUSHTO_DETAILVIEW, nil) ;
NC_ADD_TARGET_NAME_OBJECT(self, @selector(userLoginNotify), kUserLoginSuccessNoti, nil);
NC_ADD_TARGET_NAME_OBJECT(self, @selector(userlogOutNotify), kUserLogOutNotify, nil);
NC_ADD_TARGET_NAME_OBJECT(self, @selector(userAvatorUpDate), kUserAvatorUpdateNoti, nil) ;
//
NC_ADD_TARGET_NAME_OBJECT(self, @selector(userCloseChatRoomAction), @"UserCloseChatRoomAction", nil);
}
#pragma mark 广
@ -527,9 +561,11 @@
[self.navigationController pushViewController:detailVC animated:YES];
}
#pragma mark
#pragma mark
-(void)guardViewDissmiss{
[self showWaringView];
}
#pragma mark app
@ -549,6 +585,8 @@
NC_REMOVE_NAME(self, kUserAvatorUpdateNoti, nil);
NC_REMOVE_NAME(self, kUserLogOutNotify, nil);
NC_REMOVE_NAME(self, kUserLoginSuccessNoti, nil);
NC_REMOVE_NAME(self, @"UserCloseChatRoomAction", nil);
}
#pragma mark
@ -623,16 +661,20 @@
-(void)leftBtnAction{
BOOL isUserLogin = [GiGaUserDefault isUserLogin];
if (isUserLogin) {
GiGaMasssagesVC *masageVC= [[GiGaMasssagesVC alloc] init];
[self.navigationController pushViewController:masageVC animated:YES];
}else{
GiGaUserLoginVC *userlogInVC= [[GiGaUserLoginVC alloc] init];
GiGaBaseNavViewController *baseNav = [[GiGaBaseNavViewController alloc] initWithRootViewController:userlogInVC];
[self presentViewController:baseNav animated:YES completion:nil];
}
}
#pragma mark action
@ -718,5 +760,14 @@
}];
}
#pragma mark -
-(void)openDanmuButtonAction{
self.openDanmuButton.hidden = YES;
[self createInputView];
}
//
-(void)userCloseChatRoomAction{
self.openDanmuButton.hidden = NO;
}
@end

View File

@ -13,6 +13,12 @@
#import "MaskTimeShareActionSheet.h"
#import "GIGaUserFileHelper.h"
#import <AVFoundation/AVFoundation.h>
#import "GiGaFileNanager.h"
//#import "WXApiObject.h"
#import <WXApiObject.h>
#import <WXApi.h>
#import "UIImage+ShotImage.h"
@interface ShareViewController ()<UITableViewDelegate,UITableViewDataSource,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
@property(nonatomic,strong) UITableView *tab;
@property(nonatomic,strong) UIImageView *backimageview ;
@ -27,35 +33,41 @@
[super viewDidLoad];
_curentImageIndex = 0;
UIImageView *backimageview = [[UIImageView alloc] init];
backimageview.contentMode = UIViewContentModeScaleAspectFill;
backimageview.frame = CGRectMake(0, 0,self.view.frame.size.width, self.view.frame.size.height);
backimageview.userInteractionEnabled = YES;
backimageview.image = [GIGaUserFileHelper getUserShareImage:kUSERSHAREA_IMAGENAME];
// self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"sharebg_1"]];
self.backimageview = backimageview;
[self.view addSubview:backimageview];
[self creatTabUI];
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
backBtn.frame = CGRectMake(20,44, 40, 40);
[backBtn setImage:[UIImage imageNamed:@"btn_moment_back"] forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(backBtnAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:backBtn];
[self.view insertSubview:backimageview atIndex:0];
[self creatBtns];
}
-(void)creatTabUI{
self.automaticallyAdjustsScrollViewInsets = NO;
self.tab = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
self.tab.separatorStyle = UITableViewCellSelectionStyleNone;
self.tab.delegate = self;
self.tab.dataSource = self;
self.tab.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.tab];
UIImageView *backimageview = [[UIImageView alloc] init];
backimageview.contentMode = UIViewContentModeScaleAspectFill;
backimageview.frame = CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height);
backimageview.userInteractionEnabled = YES;
backimageview.image = [GIGaUserFileHelper getUserShareImage:kUSERSHAREA_IMAGENAME];
// self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"sharebg_1"]];
self.backimageview = backimageview;
self.tab.backgroundView = backimageview;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
@ -146,10 +158,9 @@
}
//
-(void)changeAction{
MaskTimeShareActionSheet * sheet = [[MaskTimeShareActionSheet alloc] initWithFrame:CGRectMake(0, 0, KMainW, KMainH)];
[sheet show:^(NSUInteger index) {
switch (index) {
@ -186,6 +197,7 @@
[self.view addSubview:sheet];
}
#pragma mark
-(void)photosAlbum{
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.delegate = self; imagePickerController.allowsEditing = YES;
@ -217,6 +229,7 @@
}
//
-(void)takePhoto{
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.delegate = self; imagePickerController.allowsEditing = YES;
@ -263,9 +276,9 @@
UIImage*img=[info objectForKey:UIImagePickerControllerEditedImage];
UIImage *small = [GIGaUserFileHelper zipScaleWithImage:img];
[GIGaUserFileHelper savaShareImange:kUSERSHAREA_IMAGENAME image:small];
[self.backimageview setImage:small];
ShareViewController *share = [[ShareViewController alloc] init];
[self presentViewController:share animated:NO completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
@ -273,7 +286,48 @@
}
-(void)shareBtnAction{
if (![WXApi isWXAppInstalled]) {
GIGA_ShowToast(@"未安装微信");
return;
}
UIImage *image = [UIImage saveLongImage:self.tab];
[self jxt_showActionSheetWithTitle:@"分享微信" message:@"" appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) {
alertMaker.addActionDefaultTitle(@"朋友");
alertMaker.addActionDefaultTitle(@"朋友圈");
alertMaker.addActionCancelTitle(@"取消");
} actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) {
if (buttonIndex==0) {
//
[self shareImagToWX:image scene:WXSceneSession];
}else if (buttonIndex==1){
//
[self shareImagToWX:image scene:WXSceneTimeline];
}
}];
}
-(void)shareImagToWX:(UIImage *)image scene:(int)scene{
WXMediaMessage *msg = [WXMediaMessage message];
UIImage * masllThumb = [GIGaUserFileHelper scaleFromImage:image toSize:CGSizeMake(100, 100)];
msg.title = @"面膜时间";
msg.description= @"极迦面膜";
[msg setThumbImage:masllThumb];
WXImageObject *imageObject = [WXImageObject object];
NSData *imageData = UIImagePNGRepresentation(image);
imageObject.imageData = imageData;
msg.mediaObject = imageObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.message = msg;
req.scene = scene;
req.bText = NO;
[WXApi sendReq:req];
}
@end

View File

@ -248,7 +248,7 @@
-(void)loadRequestQuestions{
NSDictionary *params = @{};
GiGaBaseAPiRequest *request = [GiGaBaseAPiRequest initWithRequestPath:@"activity/maskquestion/v1/list" method:RequestPostMethod parms:params];
GiGaBaseAPiRequest *request = [GiGaBaseAPiRequest initWithRequestPath:kApiSkinTestQuestionList method:RequestPostMethod parms:params];
[self.view makeToastActivity:CSToastPositionCenter];
[request requstDataWithResult:^(GiGaAPIResult *result) {
@ -359,42 +359,15 @@
-(void)submitAnswer{
NSDictionary *params = @{@"singleChoiceList":self.answerArray};
[self.view makeToastActivity:CSToastPositionCenter];
NSString *url = [NSString stringWithFormat:@"%@activity/maskquestion/v1/result",[GiGaServerConfig getMainUrl]];
[GiGaNetManager userbodyRequest:url params:params completionHandler:^(NSURLResponse *response, NSDictionary *resDic, NSError * _Nullable error) {
[self.view hideToastActivity];
GiGaAPIResult *result = [[GiGaAPIResult alloc] initWithDictionary:resDic];
if (result.success) {
MaskTestResult* mode = [[MaskTestResult alloc] initWithDictionary:resDic error:nil];
[self userTestEnd:mode];
}else{
GIGA_ShowToast(result.message);
}
GILog(@"**测试结果***\n code:%ld\n message:%@\n *******\n dic:%@",result.code,result.message,result.dic);
}];
[self userTestEnd];
}
-(void)userTestEnd:(MaskTestResult*)model{
-(void)userTestEnd{
BOOL isUserLogin = [GiGaUserDefault isUserLogin];
if (isUserLogin) {
//
// NSDictionary *dic = @{
// @"dryness":@"0.41",
// @"drynessPercent":@"41%",
// @"mask":@"",
// @"minute":@"19",
// @"oiliness":@"0.59",
// @"oilinessPercent":@"59%"
// };
// MaskTestResult *model =[[MaskTestResult alloc] initWithDictionary:dic error:nil];
MaskTestResultVC *resultVC = [[MaskTestResultVC alloc] init];
resultVC.model = model;
[self.navigationController pushViewController:resultVC animated:YES];
[self getTestResult];
}else{
[self jxt_showAlertWithTitle:@"对不起您还没有登录" message:@"请登录后查看肤质测试结果" appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) {
@ -416,6 +389,46 @@
}
//
-(void)getTestResult{
NSDictionary *params = @{@"singleChoiceList":self.answerArray};
[self.view makeToastActivity:CSToastPositionCenter];
NSString *url = [NSString stringWithFormat:@"%@%@",[GiGaServerConfig getMainUrl],kAiSkinTestResult];
[GiGaNetManager userbodyRequest:url params:params completionHandler:^(NSURLResponse *response, NSDictionary *resDic, NSError * _Nullable error) {
[self.view hideToastActivity];
GiGaAPIResult *result = [[GiGaAPIResult alloc] initWithDictionary:resDic];
if (result.success) {
MaskTestResult* mode = [[MaskTestResult alloc] initWithDictionary:resDic error:nil];
NSUInteger minute = [mode.minute integerValue];
NSTimeInterval time = minute * 60;
[GiGaUserDefault savaMaskeTime:time];
//
// NSDictionary *dic = @{
// @"dryness":@"0.41",
// @"drynessPercent":@"41%",
// @"mask":@"",
// @"minute":@"19",
// @"oiliness":@"0.59",
// @"oilinessPercent":@"59%"
// };
// MaskTestResult *model =[[MaskTestResult alloc] initWithDictionary:dic error:nil];
MaskTestResultVC *resultVC = [[MaskTestResultVC alloc] init];
resultVC.model = mode;
[self.navigationController pushViewController:resultVC animated:YES];
}else{
GIGA_ShowToast(result.message);
}
GILog(@"**测试结果***\n code:%ld\n message:%@\n *******\n dic:%@",result.code,result.message,result.dic);
}];
}
-(void)preBtnAction{
_page -- ;

View File

@ -12,4 +12,5 @@
@interface MaskTestResultVC : GiGaBaseViewController
@property (nonatomic,strong) MaskTestResult *model;
@end

View File

@ -10,9 +10,12 @@
#import "MaskResultMinViewCell.h"
#import "MaskResultPercentCell.h"
#import "MaskResultShareViewCell.h"
#import "GIGaUserFileHelper.h"
#import "UIImage+ShotImage.h"
#import "GiGaBaseAPiRequest.h"
#import "GiGaFileNanager.h"
#import <WXApi.h>
#import "MaskTestResult.h"
@interface MaskTestResultVC ()
@ -22,9 +25,9 @@
- (void)viewDidLoad {
[super viewDidLoad];
[self addNavTitile:@"测试结果"];
// Do any additional setup after loading the view.
[self.view addSubview:self.tableView];
self.tableView.delegate = self;
self.tableView.dataSource = self;
@ -39,6 +42,32 @@
[self.tableView registerClass:[MaskResultMinViewCell class] forCellReuseIdentifier:@"MaskResultMinViewCell"];
[self.tableView registerClass:[MaskResultShareViewCell class] forCellReuseIdentifier:@"MaskResultShareViewCell"];
if (!self.model) {
[self addNavTitile:@"历史测试"];
[self requstLatestTestData];
}
}
-(void)requstLatestTestData{
[self.view makeToastActivity:CSToastPositionCenter];
GiGaBaseAPiRequest *api = [GiGaBaseAPiRequest initWithRequestPath:kApiGetLatestTest method:RequestPostMethod parms:@{}];
[api requstDataWithResult:^(GiGaAPIResult *result) {
[self.view hideToastActivity];
if (result.success) {
NSDictionary *dic = result.dic;
NSDictionary *reult = dic[@"result"];
MaskTestResult *resultMode = [[MaskTestResult alloc] initWithDictionary:reult error:nil];
self.model = resultMode;
[self.tableView reloadData];
}else{
GIGA_ShowToast(result.message);
}
}];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
@ -76,7 +105,7 @@
cell = [[MaskResultShareViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];;
}
[cell.shareBtn addTarget:self action:@selector(shareBtnAciton) forControlEvents:UIControlEventTouchUpInside];
[cell kidTitle:self.model.mask];
[cell kidTitle:self.model];
return cell;
}
@ -101,41 +130,53 @@
}
-(void)shareBtnAciton{
UIImage *image = [self saveLongImage:self.tableView];
// SHareTestImageVC *imagevc = [[SHareTestImageVC alloc] init];
// imagevc.image = image;
//[self.navigationController pushViewController:imagevc animated:YES];
if (![WXApi isWXAppInstalled]) {
GIGA_ShowToast(@"未安装微信");
return;
}
UIImage *image = [UIImage saveLongImage:self.tableView];
//[[GiGaFileNanager shareInstance] saveImaeToAlBum:image];
[self jxt_showActionSheetWithTitle:@"分享微信" message:@"" appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) {
alertMaker.addActionDefaultTitle(@"朋友");
alertMaker.addActionDefaultTitle(@"朋友圈");
alertMaker.addActionCancelTitle(@"取消");
} actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) {
if (buttonIndex==0) {
//
[self shareImagToWX:image scene:WXSceneSession];
}else if (buttonIndex==1){
//
[self shareImagToWX:image scene:WXSceneTimeline];
}
}];
}
-(void)shareImagToWX:(UIImage *)image scene:(int)scene{
WXMediaMessage *msg = [WXMediaMessage message];
UIImage * masllThumb = [GIGaUserFileHelper scaleFromImage:image toSize:CGSizeMake(100, 100)];
msg.title = @"面膜时间";
msg.description= @"极迦面膜";
[msg setThumbImage:masllThumb];
WXImageObject *imageObject = [WXImageObject object];
NSData *imageData = UIImagePNGRepresentation(image);
imageObject.imageData = imageData;
msg.mediaObject = imageObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.message = msg;
req.scene = scene;
req.bText = NO;
[WXApi sendReq:req];
}
- (UIImage *)saveLongImage:(UITableView *)table {
UIImage* image = nil;
// NOYES
UIGraphicsBeginImageContextWithOptions(table.contentSize, YES, [UIScreen mainScreen].scale);
CGPoint savedContentOffset = table.contentOffset;
CGRect savedFrame = table.frame;
table.contentOffset = CGPointZero;
table.frame = CGRectMake(0, 0, table.contentSize.width, table.contentSize.height);
[table.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
table.contentOffset = savedContentOffset;
table.frame = savedFrame;
UIGraphicsEndImageContext();
[[GiGaFileNanager shareInstance] saveImaeToAlBum:image];
return image;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];

View File

@ -16,6 +16,11 @@
@property(nonatomic,copy) NSString *minute;
@property(nonatomic,copy) NSString *oiliness;
@property(nonatomic,copy) NSString *oilinessPercent;
//保湿0无1有
@property(nonatomic) int moisture;
//美白0无1有
@property(nonatomic) int whitening;
//提拉紧致0无1有
@property(nonatomic) int liftingTightening;
@end

View File

@ -8,14 +8,19 @@
#import "GIGaQuestionSlider.h"
#import "UIColor+HexColor.h"
#define thumbBound_x 10
#define thumbBound_y 20
@interface GIGaQuestionSlider()
{
CGRect _lastBounds;
}
@end
@implementation GIGaQuestionSlider
- (instancetype)initWithFrame:(CGRect)frame type:(GIGaQuestionSliderType)type
{
self = [super initWithFrame:frame];
@ -112,5 +117,53 @@
}
// thumb
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value
{
rect.origin.x = rect.origin.x;
rect.size.width = rect.size.width ;
CGRect result = [super thumbRectForBounds:bounds trackRect:rect value:value];
_lastBounds = result;
return result;
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
UIView *result = [super hitTest:point withEvent:event];
if (point.x < 0 || point.x > self.bounds.size.width){
return result;
}
if ((point.y >= -thumbBound_y) && (point.y < _lastBounds.size.height + thumbBound_y)) {
float value = 0.0;
value = point.x - self.bounds.origin.x;
value = value/self.bounds.size.width;
value = value < 0? 0 : value;
value = value > 1? 1: value;
value = value * (self.maximumValue - self.minimumValue) + self.minimumValue;
[self setValue:value animated:YES];
}
return result;
}
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
BOOL result = [super pointInside:point withEvent:event];
if (!result && point.y > -10) {
if ((point.x >= _lastBounds.origin.x - thumbBound_x) && (point.x <= (_lastBounds.origin.x + _lastBounds.size.width + thumbBound_x)) && (point.y < (_lastBounds.size.height + thumbBound_y))) {
result = YES;
}
}
return result;
}
@end

View File

@ -9,6 +9,11 @@
#import <UIKit/UIKit.h>
@interface MaskResultCandView : UIView
@property(nonatomic,strong) UIImageView *shuiImageView;
@property(nonatomic,strong) UIImageView *meibaiImageView;
@property(nonatomic,strong) UIImageView *tilaImageView;
@property(nonatomic,strong) NSArray *imagesArr;
- (instancetype)initWith:(NSArray *)images;
-(void)updateImages:(NSArray *)images;
@end

View File

@ -24,7 +24,17 @@
-(void)creatSubs{
for (NSInteger i=0; i<self.imagesArr.count; i ++) {
UIImageView *image = [[UIImageView alloc] init];
if (i==0) {
self.shuiImageView = image;
}else if (i==1){
self.meibaiImageView = image;
}else if (i==2){
self.tilaImageView= image;
}
image.contentMode = UIViewContentModeScaleAspectFill;
image.image = [UIImage imageNamed:self.imagesArr[i]];
image.layer.shadowColor = [UIColor blackColor].CGColor;
@ -50,4 +60,19 @@
//[self creatSubs];
}
-(void)updateImages:(NSArray *)images
{
for (NSInteger i=0; i<images.count; i++) {
if (i==0) {
self.shuiImageView.image = [UIImage imageNamed:images[i]];
}else if (i==1){
self.meibaiImageView.image = [UIImage imageNamed:images[i]];
}else{
self.tilaImageView.image = [UIImage imageNamed:images[i]];
}
}
}
@end

View File

@ -91,9 +91,11 @@
}];
[self bringSubviewToFront:jianyiLabel];
[self bringSubviewToFront:timeLabel];
}
- (void)layoutSubviews{
[super layoutSubviews];
[self drawViewInView:self.colorView backColor:GIGA_MAIN_BGCOLOR];
@ -122,11 +124,15 @@
}
-(void)loadMineWith:(NSString *)minute{
if ([minute isKindOfClass:[NSNull class]]) {
minute = @"17";
}
NSString *time = [NSString stringWithFormat:@"%@分钟",minute];
self.timeLabel.text = time;
}
-(void)laoutSettings{
}

View File

@ -7,10 +7,13 @@
//
#import <UIKit/UIKit.h>
#import "MaskTestResult.h"
#import "MaskResultCandView.h"
@interface MaskResultShareViewCell : UITableViewCell
@property (nonatomic,strong) UIButton *shareBtn;
-(void)kidTitle:(NSString *)title;
@property (nonatomic,strong) MaskResultCandView *imagsBackView;
-(void)kidTitle:(MaskTestResult *)model;
@property (nonatomic,strong) UILabel *candLabe;

View File

@ -48,7 +48,9 @@
}];
//
NSArray * imagesArr = @[@"result_water",@"result_moon",@"result_push"];
MaskResultCandView *imagsBackView = [[MaskResultCandView alloc] initWith:imagesArr];
self.imagsBackView = imagsBackView;
[self addSubview:imagsBackView];
[imagsBackView mas_makeConstraints:^(MASConstraintMaker *make) {
@ -114,11 +116,19 @@
}
-(void)kidTitle:(NSString *)title{
if (!title || [title isEqualToString:@""] || [title isKindOfClass:[NSNull class]]) {
title = @"全效型";
-(void)kidTitle:(MaskTestResult *)model{
if (!model.mask || [model.mask isEqualToString:@""] || [model.mask isKindOfClass:[NSNull class]]) {
model.mask = @"全效型";
}
self.candLabe.text = title;
self.candLabe.text = model.mask;
NSString *water = model.moisture ==1 ? @"result_water":@"result_wmz";
NSString *meibai = model.whitening ==1 ? @"result_moon":@"result_ylwmz";
NSString *tila= model.liftingTightening ==1 ? @"result_push":@"result_wmzzz";
[self.imagsBackView updateImages:@[water,meibai,tila]];
}
-(void)layoutSubviews{

View File

@ -8,6 +8,14 @@
#import "NYSliderPopover.h"
#import "NYPopover.h"
#define thumbBound_x 10
#define thumbBound_y 20
@interface NYSliderPopover()
{
CGRect _lastBounds;
}
@end
@implementation NYSliderPopover
@ -183,4 +191,55 @@
}
// thumb
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value
{
rect.origin.x = rect.origin.x;
rect.size.width = rect.size.width ;
CGRect result = [super thumbRectForBounds:bounds trackRect:rect value:value];
_lastBounds = result;
return result;
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
UIView *result = [super hitTest:point withEvent:event];
if (point.x < 0 || point.x > self.bounds.size.width){
return result;
}
if ((point.y >= -thumbBound_y) && (point.y < _lastBounds.size.height + thumbBound_y)) {
float value = 0.0;
value = point.x - self.bounds.origin.x;
value = value/self.bounds.size.width;
value = value < 0? 0 : value;
value = value > 1? 1: value;
value = value * (self.maximumValue - self.minimumValue) + self.minimumValue;
[self setValue:value animated:YES];
}
return result;
}
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
BOOL result = [super pointInside:point withEvent:event];
if (!result && point.y > -10) {
if ((point.x >= _lastBounds.origin.x - thumbBound_x) && (point.x <= (_lastBounds.origin.x + _lastBounds.size.width + thumbBound_x)) && (point.y < (_lastBounds.size.height + thumbBound_y))) {
result = YES;
}
}
return result;
}
@end

View File

@ -103,7 +103,7 @@ static const CGFloat kInputViewH = 44.f;
}
if (self.inputTextField.text.length == 0) {
[[UIApplication sharedApplication].keyWindow makeToast:@"Comment content cannot be empty" duration:1 position:CSToastPositionCenter];
[[UIApplication sharedApplication].keyWindow makeToast:@"弹幕不能为空" duration:1 position:CSToastPositionCenter];
return;
}

View File

@ -7,8 +7,8 @@
//
#import "MaskShareBoootomViewCell.h"
#import "ZXingWrapper.h"
//#import "ZXingWrapper.h"
#import "UIImage+LogoQrCode.h"
@implementation MaskShareBoootomViewCell
@ -16,7 +16,9 @@
[super awakeFromNib];
// Initialization code
self.backgroundColor = [UIColor clearColor];
UIImage *imag = [ZXingWrapper createCodeWithString:@"app_logo" size:CGSizeMake(85, 85) CodeFomart:kBarcodeFormatQRCode];
// UIImage *imag = [ZXingWrapper createCodeWithString:@"giga" size:CGSizeMake(170, 170) CodeFomart:kBarcodeFormatQRCode];
UIImage *imag = [UIImage createQrImageWith:[UIImage imageNamed:@"result_logo"] logoSize:CGSizeZero qrText:@"jijia"];
self.codeImageVIew.image = imag;
}

View File

@ -39,7 +39,7 @@
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ns1-dj-ePW">
<rect key="frame" x="68.5" y="313" width="238" height="88"/>
<rect key="frame" x="68.5" y="289" width="238" height="88"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="客服热线: 400-0000-000" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fQZ-vC-DAg">
<rect key="frame" x="44" y="25" width="151" height="17"/>
@ -64,7 +64,10 @@
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="当前版本: v 1.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O00-AN-ESn">
<rect key="frame" x="142.5" y="405" width="90" height="17"/>
<rect key="frame" x="142.5" y="382" width="90" height="28"/>
<constraints>
<constraint firstAttribute="height" constant="28" id="6TJ-hh-QMB"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Semibold" family="PingFang SC" pointSize="12"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
@ -76,7 +79,7 @@
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CopyRight @ 极迦生物 2018 - 2020" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uqu-At-cU5">
<rect key="frame" x="103.5" y="640" width="168" height="14"/>
<rect key="frame" x="103.5" y="628" width="168" height="14"/>
<fontDescription key="fontDescription" name="PingFangSC-Semibold" family="PingFang SC" pointSize="10"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
@ -94,14 +97,14 @@
<constraint firstItem="CaV-Vg-83Z" firstAttribute="top" secondItem="KQS-5b-EYm" secondAttribute="bottom" constant="8" id="0Ca-ma-0Xq"/>
<constraint firstItem="aZZ-3P-qGO" firstAttribute="top" secondItem="uWt-SH-yKP" secondAttribute="top" constant="599" id="4aq-UH-aog"/>
<constraint firstItem="KQS-5b-EYm" firstAttribute="centerX" secondItem="uWt-SH-yKP" secondAttribute="centerX" id="743-r4-R1X"/>
<constraint firstAttribute="bottom" secondItem="uqu-At-cU5" secondAttribute="bottom" constant="31" id="F3V-4E-z1P"/>
<constraint firstItem="O00-AN-ESn" firstAttribute="top" secondItem="ns1-dj-ePW" secondAttribute="bottom" constant="4" id="VBQ-rU-lZq"/>
<constraint firstAttribute="bottom" secondItem="uqu-At-cU5" secondAttribute="bottom" constant="12" id="F3V-4E-z1P"/>
<constraint firstItem="O00-AN-ESn" firstAttribute="top" secondItem="ns1-dj-ePW" secondAttribute="bottom" constant="5" id="VBQ-rU-lZq"/>
<constraint firstItem="ns1-dj-ePW" firstAttribute="centerX" secondItem="uWt-SH-yKP" secondAttribute="centerX" id="Vgi-dq-8gh"/>
<constraint firstItem="YGv-MC-rGM" firstAttribute="top" secondItem="uWt-SH-yKP" secondAttribute="top" constant="60" id="WYS-WQ-DAP"/>
<constraint firstItem="O00-AN-ESn" firstAttribute="centerX" secondItem="uWt-SH-yKP" secondAttribute="centerX" id="bbr-sV-JYk"/>
<constraint firstItem="uqu-At-cU5" firstAttribute="top" secondItem="aZZ-3P-qGO" secondAttribute="bottom" constant="24" id="bn8-GO-D8j"/>
<constraint firstItem="uqu-At-cU5" firstAttribute="top" secondItem="aZZ-3P-qGO" secondAttribute="bottom" constant="12" id="bn8-GO-D8j"/>
<constraint firstAttribute="trailing" secondItem="uqu-At-cU5" secondAttribute="trailing" constant="104" id="f5C-j2-JuY"/>
<constraint firstItem="ns1-dj-ePW" firstAttribute="top" secondItem="CaV-Vg-83Z" secondAttribute="bottom" constant="91" id="guj-Ca-B2n"/>
<constraint firstItem="ns1-dj-ePW" firstAttribute="top" secondItem="CaV-Vg-83Z" secondAttribute="bottom" constant="67" id="guj-Ca-B2n"/>
<constraint firstItem="YGv-MC-rGM" firstAttribute="centerX" secondItem="uWt-SH-yKP" secondAttribute="centerX" id="nXD-1v-Onf"/>
<constraint firstItem="aZZ-3P-qGO" firstAttribute="centerX" secondItem="uWt-SH-yKP" secondAttribute="centerX" id="o8Y-VR-Tgb"/>
<constraint firstItem="KQS-5b-EYm" firstAttribute="top" secondItem="YGv-MC-rGM" secondAttribute="bottom" constant="22" id="u8C-WB-j66"/>

View File

@ -8,6 +8,9 @@
#import "GIGaChangePassVC.h"
#import "GiGaBaseAPiRequest.h"
#import "GiGaNetManager.h"
#import "GiGaServerConfig.h"
#import "GiGaAPIResult.h"
@interface GIGaChangePassVC ()
@ -79,22 +82,23 @@
@"newPassword":self.xinPassFiled.text,
@"newPasswordConfirm":self.reNewPassFiled.text
};
GiGaBaseAPiRequest *requst = [GiGaBaseAPiRequest initWithRequestPath:kPAiUSerEditpwd method:RequestPostMethod parms:params];
[requst requstDataWithResult:^(GiGaAPIResult *result) {
NSString *url = [NSString stringWithFormat:@"%@%@",[GiGaServerConfig getMainUrl],kPAiUSerEditpwd];
[GiGaNetManager userbodyRequest:url params:params completionHandler:^(NSURLResponse *response, NSDictionary *resDic, NSError * _Nullable error) {
GiGaAPIResult *reult = [[GiGaAPIResult alloc] initWithDictionary:resDic];
[self.view hideToastActivity];
btn.userInteractionEnabled = YES;
if (result.success) {
GIGA_WIndowTost(result.message);
if (reult.success) {
GIGA_WIndowTost(reult.message);
[self.navigationController popViewControllerAnimated:YES];
}else{
if (result.code == 401) {
//token
[GiGaBaseAPiRequest userTokenTimeOutGologinFromVC:self];
}
GIGA_WIndowTost(result.message);
if (reult.code == 401) {
//token
[GiGaBaseAPiRequest userTokenTimeOutGologinFromVC:self];
}
GIGA_WIndowTost(reult.message);
}
}];
}

View File

@ -9,7 +9,7 @@
#import "GiGaChangePhoneNumberVC.h"
#import "GIGaUserChangeMobleCell.h"
#import "GiGaBaseAPiRequest.h"
#import "NSTimer+Convenience.h"
//typedef NS_ENUM(NSInteger,PohoneCodeType)
//{
// PohoneCodeTypeOld = 0,//
@ -23,6 +23,9 @@
@property(nonatomic) BOOL nextSteep;
@property(nonatomic,copy) NSString *oldCode;
@property(nonatomic,copy) NSString *xinCode;
@property(nonatomic,strong) NSTimer*timer;
@property(nonatomic) NSInteger time;
@property(nonatomic,strong) UIButton *codeBtn;
@end
@implementation GiGaChangePhoneNumberVC
@ -31,6 +34,7 @@
[super viewDidLoad];
[self addNavTitile:@"修改手机号"];
_nextSteep = NO;
_time = 60;
// Do any additional setup after loading the view from its nib.
[self.view addSubview:self.tableView];
self.tableView.delegate = self;
@ -63,8 +67,11 @@
}
[cell.codeSendBtn addTarget:self action:@selector(sendCodeBtnAction:) forControlEvents:UIControlEventTouchUpInside];
self.codeBtn = cell.codeSendBtn;
if (_nextSteep) {
cell.numberTexFiled.userInteractionEnabled = YES;
cell.numberTexFiled.text = @"";
cell.numberTexFiled.placeholder = @"请输入新手机号";
cell.oldBtn.backgroundColor = GIGARGB(227, 227, 227, 1);
NSAttributedString *atti1 = [GiGaHelper stringWithText:@"1.验证原号码" textColor:GIGARGB(165,165, 165, 1) textFont:GIGA_TEXTFONTMEDIUM(13) leterSpace:0];
@ -78,6 +85,10 @@
}else{
GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser];
if (user.mobileMask) {
cell.numberTexFiled.text = user.mobileMask;
}
cell.numberTexFiled.userInteractionEnabled = NO;
}
@ -117,6 +128,7 @@
NSAttributedString *attrititle = [GiGaHelper stringWithText:@"完成" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTBOLD(16) leterSpace:0];
[nextBtn setAttributedTitle:attrititle forState:UIControlStateNormal];
}
[view addSubview:nextBtn];
UILabel *tishiLab = [[UILabel alloc] init];
@ -212,6 +224,8 @@
#pragma mark -
-(void)sendCodeBtnAction:(UIButton *)btn{
if (_nextSteep) {
GIGaUserChangeMobleCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
@ -219,7 +233,9 @@
GIGA_ShowToast(@"请输新手机号");
return;
}
btn.userInteractionEnabled = NO;
[self startTimer:btn];
self.xinCode = cell.codeTexFiled.text;
[self sendCodeWith:cell.numberTexFiled.text];
@ -230,11 +246,32 @@
GILog(@"手机号为空");
return;
}
btn.userInteractionEnabled = NO;
[self startTimer:btn];
[self sendCodeWith:user.mobile];
}
}
//
-(void)startTimer:(UIButton *)btn{
if (_time>0) {
_timer = [NSTimer scheduledTimerWithTimeInterval:1 count:60 callback:^{
NSString *timeStr=[NSString stringWithFormat:@"%lds",(long)self->_time];
[btn setTitle:timeStr forState:UIControlStateNormal];
self->_time--;
if (self->_time==0) {
[self codeBtnStateNormal];
}
}];
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
}
-(void)sendCodeWith:(NSString *)phone{
NSString *utl = nil;
if (_nextSteep) {
@ -244,14 +281,27 @@
}
GiGaBaseAPiRequest *api = [GiGaBaseAPiRequest initWithRequestPath:utl method:RequestPostMethod parms:@{@"mobile":phone}];
[api requstDataWithResult:^(GiGaAPIResult *result) {
if (result.success) {
GIGA_ShowToast(@"已发送");
}else{
[self codeBtnStateNormal];
GIGA_ShowToast(result.message);
}
}];
}
-(void)codeBtnStateNormal{
NSAttributedString *att = [GiGaHelper stringWithText:@"发送验证码" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTBOLD(10) leterSpace:0];
[self.codeBtn setAttributedTitle:att forState:UIControlStateNormal];
self.time =60;
self.codeBtn.userInteractionEnabled = YES;
}
#pragma mark -
-(void)verifyPhoneCode:(NSString *)phonenumber code:(NSString *)code btn:(UIButton *)btn
{
@ -261,7 +311,9 @@
[api requstDataWithResult:^(GiGaAPIResult *result) {
if (result.success) {
if (self.nextSteep) {
//
[self finishBtn:btn wtihNewPhone:phonenumber];
@ -270,6 +322,7 @@
[self.view hideToastActivity];
self.nextSteep = YES;
self.oldCode = code;
[self codeBtnStateNormal];
[self.tableView reloadData];
}
@ -281,7 +334,10 @@
}];
}
-(void)dealloc{
[self.timer invalidate];
self.timer = nil;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.

View File

@ -20,6 +20,8 @@
@interface GiGaFeedBackViewController ()
@property(nonatomic,strong) NSMutableArray *imagesUrl;
@property(nonatomic,copy) NSString *kinCode;
@property(nonatomic,strong) UIButton *tijiaoBtn;
@end
@ -29,6 +31,7 @@
[super viewDidLoad];
[self addNavTitile:@"意见反馈"];
_imagesUrl = [NSMutableArray new];
self.kinCode = @"1";
[self.view addSubview:self.tableView];
self.tableView.delegate = self;
self.tableView.dataSource = self;
@ -50,9 +53,10 @@
btn.frame = CGRectMake((self.view.frame.size.width - 245) /2 , 20, 245,40);
btn.backgroundColor = [UIColor whiteColor];
NSAttributedString *atti = [GiGaHelper stringWithText:@"提交" textColor:GIGA_MAIN_BGCOLOR textFont:GIGA_TEXTFONTBOLD(18) leterSpace:0];
[btn addTarget:self action:@selector(tijiaoAction) forControlEvents:UIControlEventTouchUpInside];
[btn addTarget:self action:@selector(tijiaoAction:) forControlEvents:UIControlEventTouchUpInside];
[btn setAttributedTitle:atti forState:UIControlStateNormal];
[footer addSubview:btn];
self.tijiaoBtn = btn;
self.tableView.tableFooterView = footer;
@ -93,13 +97,12 @@
__weak typeof(cell) weakCell = cell;
cell.pickerBalock = ^{
[[SJPhotoPicker shareSJPhotoPicker] showPhotoPickerToController:self pickedAssets:^(NSArray<PHAsset *> *assets) {
// 6
// if ((weakCell.images.count + assets.count) > 6) {
// GIGA_ShowToast(@"最多六张");
// return ;
// }
if ((weakCell.images.count + assets.count) > 6) {
GIGA_ShowToast(@"最多六张");
return ;
}
[weakCell.images addObjectsFromArray:assets];
//weakSelf.images = [NSMutableArray arrayWithArray:assets];
[weakCell.collectionView reloadData];
}];
@ -115,9 +118,11 @@
if (indexPath.section == 0) {
GiGaFeedBackKindView *piker = [GiGaFeedBackKindView showAt:self atRow:0];
piker.selectedItemBlock = ^(NSString *tile) {
GiGaFeedLeiIingViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.kidLabel.text = tile;
piker.selectedItemBlock = ^(GIGaFeedKind *kind) {
GiGaFeedLeiIingViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.kidLabel.text = kind.dictLabel;
self.kinCode = kind.dictCode;
};
}
@ -166,7 +171,7 @@
#pragma mark
-(void)tijiaoAction{
-(void)tijiaoAction:(UIButton *)btn{
@ -190,19 +195,27 @@
NSDictionary *dic =nil;
NSString *qqcom = qqcell.QTextFiled.text;
if (!qqcom) {
dic = @{@"type":kindcell.kidLabel.text,@"content":contencell.contentFiled.text};
}else{
dic = @{@"type":kindcell.kidLabel.text,@"content":contencell.contentFiled.text,@"contact":qqcom
};
qqcom = @"contact";
}
[self.imagesUrl removeAllObjects];
[self uploadImags:dic];
dic = @{@"type":self.kinCode,@"content":contencell.contentFiled.text,@"contact":qqcom
};
//
if (self.imagesUrl.count <= 0) {
//
[self uploadFeedinfo:dic imgUrlList:self.imagesUrl];
}else{
////
[self uploadImags:dic];
}
}
// imageurls
}
// imageurls
-(void)uploadImags:(NSDictionary *)params{
[self.imagesUrl removeAllObjects];
GIGaFeedPhontosViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:3]];
NSArray *names =cell.imageNames;
@ -233,15 +246,14 @@
});
}
}
//
-(void)uploadImage:(NSData *)imageData name:(NSString *)name info:(NSDictionary *)info totalCount:(NSInteger)count{
[self.view makeToastActivity:CSToastPositionCenter];
self.tijiaoBtn.userInteractionEnabled = NO;
NSString *url = [NSString stringWithFormat:@"%@%@",[GiGaServerConfig getMainUrl],kUploadFeed];
[GiGaNetManager uploadImage:url imgData:imageData parms:@{@"file":@"file"} responseBlock:^(NSDictionary *responseDict, NSDictionary *responseHeaderFields, NSError *error) {
[self.view hideToastActivity];
@ -251,7 +263,8 @@
NSString *url = responseDict[@"url"];
if (url) {
[self.imagesUrl addObject:url];
NSDictionary *dic = [NSDictionary dictionaryWithObject:url forKey:@"imgUrl"];
[self.imagesUrl addObject:dic];
NSLog(@"上船图片%@成功",name);
NSLog(@"当前获取图片数组:%@",self.imagesUrl);
if (self.imagesUrl.count == count) {
@ -260,25 +273,29 @@
}
}else if (result.code == 401){
self.tijiaoBtn.userInteractionEnabled = YES;
GIGA_WIndowTost(@"登录超时,请重新登录");
[GiGaBaseAPiRequest userTokenTimeOutGologinFromVC:self];
}else{
GIGA_ShowToast(result.message);
self.tijiaoBtn.userInteractionEnabled = YES;
}
}];
}
//body
//body
-(void)uploadFeedinfo:(NSDictionary*)params imgUrlList:(NSArray *)urlArr{
NSMutableDictionary *finallyparam = [NSMutableDictionary dictionaryWithDictionary:params];
[finallyparam setObject:urlArr forKey:@"imgUrlList"];
NSLog(@"finallyparam%@",finallyparam);
[self.view makeToastActivity:CSToastPositionCenter];
NSString *url = [NSString stringWithFormat:@"%@%@",[GiGaServerConfig getMainUrl],kAPiUpLoadFeeeds];
[GiGaNetManager userbodyRequest:url params:finallyparam completionHandler:^(NSURLResponse *response, NSDictionary *resDic, NSError * _Nullable error) {
self.tijiaoBtn.userInteractionEnabled = YES;
[self.view hideToastActivity];
if (error) {
GILog(@"err:%@",error.localizedDescription);
@ -289,7 +306,10 @@
GiGaAPIResult *result = [[GiGaAPIResult alloc] initWithDictionary:resDic];
if (result.success) {
GIGA_ShowToast(@"🙏感谢提出宝贵意见!🙏");
GIGA_WIndowTost(@"感谢提出宝贵意见!");
[self.navigationController popViewControllerAnimated:YES];
}else if (result.code == 401){
GIGA_WIndowTost(@"登录超时,请重新登录");
[GiGaBaseAPiRequest userTokenTimeOutGologinFromVC:self];
@ -326,6 +346,7 @@
// }
// }];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.

View File

@ -18,6 +18,7 @@
#import "UIImageView+WebCache.h"
#import "GiGaUserInfoVC.h"
#import "GIGaMaskTimeUseRecordVC.h"
#import "MaskTestResultVC.h"
@interface GiGaMeViewController ()
@property (nonatomic,strong) GiGaUser *user;
@ -152,9 +153,11 @@
[self.navigationController pushViewController:historyVC animated:YES];
}else if (indexPath.section == 1 && indexPath.row == 1){
//使
GIGaMaskTimeUseRecordVC *historyVC= [[GIGaMaskTimeUseRecordVC alloc] init];
[self.navigationController pushViewController:historyVC animated:YES];
//
// GIGaMaskTimeUseRecordVC *historyVC= [[GIGaMaskTimeUseRecordVC alloc] init];
// [self.navigationController pushViewController:historyVC animated:YES];
MaskTestResultVC *reult = [[MaskTestResultVC alloc] init];
[self.navigationController pushViewController:reult animated:YES];
}else{
//

View File

@ -113,12 +113,12 @@
cell = [[[NSBundle mainBundle] loadNibNamed:@"GIGaUserIDViewCell" owner:self options:nil] lastObject];
}
[cell loadCellData:indexPath user: self.user];
return cell;
}else if (indexPath.section == 1 && indexPath.row <= 2){
GIGaUserWeChatViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GIGaUserWeChatViewCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"GIGaUserWeChatViewCell" owner:self options:nil] lastObject];
@ -157,14 +157,23 @@
cell = [[GiGaUserJobViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
}
[cell userSelectjobAction:^() {
self.jobSpread = !self.jobSpread;
[tableView reloadSections:[NSIndexSet indexSetWithIndex:3] withRowAnimation:UITableViewRowAnimationNone];
[UIView performWithoutAnimation:^{
[tableView reloadSections:[NSIndexSet indexSetWithIndex:3] withRowAnimation:UITableViewRowAnimationNone];
}];
}];
[cell setButtnImage:self.jobSpread with:self.jobArr];
[cell userSelectjob:^(NSString *title) {
self.user.occupationCode = title;
[tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:3 inSection:2]] withRowAnimation:UITableViewRowAnimationNone];
[UIView performWithoutAnimation:^{
[tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:3 inSection:2]] withRowAnimation:UITableViewRowAnimationNone];
}];
}];
return cell;
@ -180,7 +189,7 @@
weakify(self);
[LYSDatePickerController customdidSelectDatePicker:^(NSDate *date) {
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy/MM/dd"];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSString *currentDate = [dateFormat stringFromDate:date];
GIGaUserCityViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
weakSelf.user.birthday = currentDate;
@ -507,9 +516,10 @@
if (newurl) {
user.headImgUrl = newurl;
}
[[GiGaUserManager shareUser] saveUser:user];
NC_POST_NAME_OBJECT(kUserAvatorUpdateNoti, nil);
GIGA_ShowToast(@"👮‍♀️修改成功")
GIGA_ShowToast(@"修改成功")
}else{
GIGA_ShowToast(reullt.message);
}

View File

@ -7,8 +7,23 @@
//
#import "GiMaskTimeHistoryVC.h"
#import "MaskHistoryListViewCell.h"
#import "MasHistoryFirstViewCell.h"
#import "GiGaBaseAPiRequest.h"
#import "MaskHistryRecord.h"
#import <MJRefresh/MJRefresh.h>
#import "GiGaWebViewController.h"
@interface GiMaskTimeHistoryVC ()<UITableViewDelegate,UITableViewDataSource>
@property(nonatomic,strong) NSMutableArray *dataArr;
@property(nonatomic) NSUInteger currentPage;
@property(nonatomic,assign) NSInteger totalMinute;
@property(nonatomic,assign) NSInteger ranking;
@property(nonatomic,assign) NSUInteger totalPage;
//@property(nonatomic,strong) MaskHistryRecordlist *record;
@property(nonatomic,copy) NSString * guizeUrl;
@property(nonatomic) BOOL isFreshing;
@interface GiMaskTimeHistoryVC ()
@end
@ -16,8 +31,131 @@
- (void)viewDidLoad {
[super viewDidLoad];
self.dataArr = [[NSMutableArray alloc] init];
_currentPage = 1;
_totalMinute = 0;
_ranking = 0;
_isFreshing = NO;
[self addNavTitile:@"历史记录"];
// Do any additional setup after loading the view.
[self.view addSubview:self.tableView];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = [UIColor whiteColor];
self.tableView.separatorStyle = UITableViewCellSelectionStyleNone;
self.tableView.sectionFooterHeight = 0;
self.tableView.estimatedSectionFooterHeight= 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.frame = CGRectMake(0,2, KMainW, self.view.bounds.size.height - SAFE_NAV_HEIGHT);
self.tableView.estimatedRowHeight = 170;
self.tableView.rowHeight = UITableViewAutomaticDimension;
[self creatRefreshView];
[self loadDataWtih:[NSString stringWithFormat:@"%ld",_currentPage] isFresh:YES];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 2;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if(indexPath.section ==0){
MasHistoryFirstViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MasHistoryFirstViewCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"MasHistoryFirstViewCell" owner:self options:nil] lastObject];
}
cell.timeLabe.text = [NSString stringWithFormat:@"%ld",(long)self.totalMinute];
cell.rankLabe.text = [NSString stringWithFormat:@"全国排行榜第%ld名",(long)self.ranking];
[cell.guizeBtn addTarget:self action:@selector(guizeShow) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
MaskHistoryListViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MaskHistoryListViewCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"MaskHistoryListViewCell" owner:self options:nil] lastObject];
}
MaskHistryRecord *recod = self.dataArr[indexPath.row];
[cell loadCellDataAt:indexPath recod:recod];
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (section == 0) {
return 1;
}
return self.dataArr.count;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 1) {
return 6;
}
return 0.1;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *view = [[UIView alloc] init];
view.backgroundColor = GIGARGB(235, 235, 235, 1);
return view;
}
-(void)loadDataWtih:(NSString *)page isFresh:(BOOL)isFresh{
self.isFreshing = YES;
[self.view makeToastActivity:CSToastPositionCenter];
GiGaBaseAPiRequest *api = [GiGaBaseAPiRequest initWithRequestPath:kApiUserHistoryList method:RequestPostMethod parms:@{@"page":page,@"limit":@"10"}];
[api requstDataWithResult:^(GiGaAPIResult *result) {
[self.view hideToastActivity];
self.isFreshing = NO;
if (isFresh) {
[self.tableView.mj_header endRefreshing];
}else{
[self.tableView.mj_footer endRefreshing];
}
if (result.success) {
NSDictionary *reDic =result.dic;
self.ranking = [[reDic valueForKey:@"ranking"] integerValue];
self.totalMinute = [[reDic valueForKey:@"totalMinute"] integerValue] ;
self.guizeUrl = [reDic valueForKey:@"ruleUrl"];
NSDictionary *pageDic = reDic[@"page"];
//self.currentPage = [pageDic valueForKey:@"currPage"];
MaskHistryRecordlist *list = [[MaskHistryRecordlist alloc] initWithDictionary:pageDic error:nil];
self.totalPage = [pageDic[@"totalPage"] integerValue];
NSArray *listA = list.list;
if (isFresh) {
[self.dataArr removeAllObjects];
}
for (MaskHistryRecord *recod in listA) {
[self.dataArr addObject:recod];
}
[self.tableView reloadData];
}else if (result.code == 401) {
//token
[GiGaBaseAPiRequest userTokenTimeOutGologinFromVC:self];
}else{
GIGA_ShowToast(result.message);
}
}];
}
- (void)didReceiveMemoryWarning {
@ -25,14 +163,55 @@
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
-(void)creatRefreshView{
self.tableView.mj_header = [MJRefreshHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMore)];
}
*/
-(void)headerRefresh{
if (_isFreshing) {
[self.tableView.mj_header endRefreshing];
return;
}
[self loadDataWtih:@"0" isFresh:YES];
}
-(void)loadMore{
if (_isFreshing) {
[self.tableView.mj_footer endRefreshing];
return;
}
if (_currentPage == _totalPage) {
[self.tableView.mj_footer endRefreshingWithNoMoreData];
return;
}
if (_currentPage < _totalPage) {
_currentPage ++;
[self loadDataWtih:[NSString stringWithFormat:@"%ld",self.currentPage] isFresh:NO];
}
}
//
-(void)guizeShow{
if (self.guizeUrl) {
GiGaWebViewController *web = [[GiGaWebViewController alloc] init];
web.souceType = WebSourceTypeUrlLink;
web.url = self.guizeUrl;
[self.navigationController pushViewController:web animated:YES];
}
}
@end

View File

@ -14,7 +14,7 @@
#import "AppVerionDescriptionVC.h"
#import "GIGaAboutUsVC.h"
#import "GiGaFeedBackViewController.h"
#import "GiGaWebViewController.h"
@interface GiSysSettingsVC ()
@end
@ -78,11 +78,16 @@
GIGaAboutUsVC *usVC= [[GIGaAboutUsVC alloc] init];
[self.navigationController pushViewController:usVC animated:YES];
}else if (indexPath.row == 3){
AppVerionDescriptionVC *verVC =[[AppVerionDescriptionVC alloc] init];
[self.navigationController pushViewController:verVC animated:YES];
// AppVerionDescriptionVC *verVC =[[AppVerionDescriptionVC alloc] init];
// [self.navigationController pushViewController:verVC animated:YES];
GiGaWebViewController *webVC = [[GiGaWebViewController alloc] init];
webVC.url = @"";
webVC.souceType = WebSourceTypeUrlLink;
[self.navigationController pushViewController:webVC animated:YES];
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
@ -107,11 +112,10 @@
[btn setTitle:@"退出登录" forState:UIControlStateNormal];
btn.layer.masksToBounds = YES;
btn.layer.cornerRadius = btn.frame.size.height / 2;
btn.backgroundColor = GIGA_MAIN_BGCOLOR;
btn.backgroundColor = GIGARGB(181, 14, 14, 1);
[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(userLogOutAction) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:btn];
return view;
}

View File

@ -11,5 +11,7 @@
@interface GIGaFeedKind : JSONModel
@property (nonatomic,copy) NSString *feed_id;
@property (nonatomic,copy) NSString *remarks;
@property (nonatomic,copy) NSString *dictLabel;
@property (nonatomic,copy) NSString *dictCode;
@end

View File

@ -0,0 +1,40 @@
//
// MaskHistryRecord.h
// GIGA
//
// Created by lianxiang on 2018/9/25.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <JSONModel/JSONModel.h>
//@class MaskHistryRecordlist;
@interface MaskHistryRecord : JSONModel
@property(nonatomic,copy) NSString *reocrd_id;
@property(nonatomic,copy) NSString *memberId;
@property(nonatomic,copy) NSString *skinType;
@property(nonatomic,copy) NSString *minute;
@property(nonatomic,copy) NSString *beginTime;
@property(nonatomic,copy) NSString *endTime;
@property(nonatomic,copy) NSString *dayNum;
@property(nonatomic,copy) NSString *num;
@property(nonatomic,copy) NSString *finishNum;
@property(nonatomic,copy) NSString *finishStatus;
@property(nonatomic,copy) NSString *useDate;
@property(nonatomic,copy) NSString *createTime;
@property(nonatomic,copy) NSString *updateTime;
@property(nonatomic,copy) NSString *skinTypeName;
@end
@protocol MaskHistryRecord;
@interface MaskHistryRecordlist:JSONModel
@property(nonatomic) NSInteger totalCount;
@property(nonatomic) NSInteger pageSize;
@property(nonatomic) NSInteger totalPage;
@property(nonatomic) NSInteger currPage;
@property(nonatomic) NSArray <MaskHistryRecord> *list;
@property(nonatomic,copy) NSString *ruleUrl;
@end

View File

@ -0,0 +1,36 @@
//
// MaskHistryRecord.m
// GIGA
//
// Created by lianxiang on 2018/9/25.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "MaskHistryRecord.h"
@implementation MaskHistryRecord
+(JSONKeyMapper *)keyMapper{
return [[JSONKeyMapper alloc] initWithModelToJSONDictionary:@{@"reocrd_id":@"id"}];
}
+ (BOOL)propertyIsOptional:(NSString *)propertyName{
return YES;
}
@end
@implementation MaskHistryRecordlist
//+(JSONKeyMapper *)keyMapper{
// return [[JSONKeyMapper alloc] initWithModelToJSONDictionary:@{@"reocrd_id":@"id"}];
//}
+ (BOOL)propertyIsOptional:(NSString *)propertyName{
return YES;
}
@end

View File

@ -112,7 +112,6 @@
if ([self.imageNames containsObject: name]) {
[self.imageNames removeObject:name];
}
[self.imageNames addObject:name];
}];
@ -140,8 +139,7 @@
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{
//
//
return 22.0f;
}
@ -164,12 +162,13 @@
}
-(void)addBtnAction:(UIButton*)btn{
if (self.pickerBalock) {
if (self.pickerBalock){
self.pickerBalock();
}
}
- (void)photoPikerComplete:(GiGaPhotoPickerBlock)pikerComplete{

View File

@ -7,12 +7,13 @@
//
#import <UIKit/UIKit.h>
#import "GIGaFeedKind.h"
@interface GiGaFeedBackKindView : UIViewController
typedef void (^SelectedItemBlock)(NSString *tile);
typedef void (^SelectedItemBlock)(GIGaFeedKind *kind);
+(GiGaFeedBackKindView *)showAt:(UIViewController *)vc atRow:(NSInteger)row;
@property(nonatomic,copy)NSString *showStr;
@property(nonatomic,strong)GIGaFeedKind *showKind;
@property(nonatomic) NSInteger defultRow;
@property (nonatomic, copy) SelectedItemBlock selectedItemBlock;

View File

@ -50,7 +50,7 @@
[self.pickerView selectRow:self.defultRow inComponent:0 animated:YES];
GIGaFeedKind *mode = self.pickerDataArr[self.defultRow];
if (mode) {
self.showStr =mode.remarks;
self.showKind =mode;
}
}else{
@ -123,7 +123,7 @@
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor blackColor];
GIGaFeedKind *mode = self.pickerDataArr[row];
label.text = mode.remarks;
label.text = mode.dictLabel;
}
return label;
}
@ -135,8 +135,8 @@
if (self.pickerDataArr.count > 0 ) {
GIGaFeedKind *mode = self.pickerDataArr[row];
self.showStr = mode.remarks;
self.selectedItemBlock(self.showStr);
self.showKind = mode;
self.selectedItemBlock(mode);
}
}
@ -145,11 +145,12 @@
-(void)done:(UIButton *)btn{
if (self.selectedItemBlock) {
if ([self.showStr isEqualToString:@"未知"]) {
if ([self.showKind.dictLabel isEqualToString:@"未知"]) {
[self hide];
return;
}
self.selectedItemBlock(self.showStr);
self.selectedItemBlock(self.showKind);
}
@ -189,8 +190,10 @@
if (self = [super init]) {
self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
self.showStr = @"未知";
self.showKind = [[GIGaFeedKind alloc] init];
self.showKind.dictLabel = @"未知";
[self requstData];
}

View File

@ -0,0 +1,19 @@
//
// MasHistoryFirstViewCell.h
// GIGA
//
// Created by lianxiang on 2018/9/24.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface MasHistoryFirstViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIButton *guizeBtn;
@property (weak, nonatomic) IBOutlet UILabel *timeLabe;
@property (weak, nonatomic) IBOutlet UILabel *rankLabe;
@property (weak, nonatomic) IBOutlet UIView *timeView;
@end

View File

@ -0,0 +1,56 @@
//
// MasHistoryFirstViewCell.m
// GIGA
//
// Created by lianxiang on 2018/9/24.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "MasHistoryFirstViewCell.h"
@implementation MasHistoryFirstViewCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] init];
NSTextAttachment *attch = [[NSTextAttachment alloc] init];
attch.image = [UIImage imageNamed:@"history_heart"];
attch.bounds = CGRectMake(0,-4, 12.9, 12.5);
NSAttributedString *imastr=[NSAttributedString attributedStringWithAttachment:attch];
[attri appendAttributedString:imastr];
NSAttributedString *titleStr = [[NSAttributedString alloc] initWithString:@" 清零小规则" attributes:@{NSFontAttributeName:[UIFont fontWithName:@"PingFangSC-Semibold" size:10],NSForegroundColorAttributeName:[UIColor whiteColor]}];
[attri appendAttributedString:titleStr];
[self.guizeBtn setAttributedTitle:attri forState:UIControlStateNormal];
}
- (void)layoutSubviews{
[super layoutSubviews];
}
- (void)layoutIfNeeded{
[super layoutIfNeeded];
self.timeView.layer.masksToBounds = NO;
self.timeView.layer.cornerRadius = self.timeView.frame.size.height /2;
self.timeView.layer.shadowOpacity = 0.3;
self.timeView.layer.shadowOffset = CGSizeMake(1, 1);
self.timeView.layer.shadowColor = [UIColor blackColor].CGColor;
self.timeView.layer.borderWidth = 5;
self.timeView.layer.borderColor = GIGARGB(253, 191,191, 1).CGColor;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

View File

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="MasHistoryFirstViewCell" rowHeight="170" id="KGk-i7-Jjw" customClass="MasHistoryFirstViewCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="170"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="320" height="169.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f8a-yz-Ecb">
<rect key="frame" x="16" y="3" width="81" height="45"/>
<constraints>
<constraint firstAttribute="height" constant="45" id="5xr-Xm-HtO"/>
<constraint firstAttribute="width" constant="81" id="zdf-g5-TQv"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="10"/>
<inset key="titleEdgeInsets" minX="-80" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="清零小规则" image="history_rule"/>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kdE-Q9-u1i">
<rect key="frame" x="22" y="42" width="57" height="26"/>
<constraints>
<constraint firstAttribute="width" constant="57" id="HVg-ED-OKU"/>
<constraint firstAttribute="height" constant="26" id="n41-cc-XrC"/>
</constraints>
<string key="text">* 请在80小时内
再次使用面膜</string>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="8"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全国总排行第 2 名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gnX-9k-8vZ">
<rect key="frame" x="102" y="139" width="116" height="20"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="14"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XgR-jp-VUJ">
<rect key="frame" x="109" y="11" width="100" height="100"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="共敷" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="7" translatesAutoresizingMaskIntoConstraints="NO" id="yat-Uk-2j1">
<rect key="frame" x="32" y="12" width="37" height="25.5"/>
<fontDescription key="fontDescription" name="PingFangSC-Semibold" family="PingFang SC" pointSize="18"/>
<color key="textColor" red="1" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="min" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aJM-2t-hFP">
<rect key="frame" x="38.5" y="64" width="24.5" height="20"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="14"/>
<color key="textColor" red="1" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="180" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fqH-WX-zEA">
<rect key="frame" x="22" y="25" width="58" height="50.5"/>
<fontDescription key="fontDescription" name="PingFangSC-Semibold" family="PingFang SC" pointSize="36"/>
<color key="textColor" red="1" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="yat-Uk-2j1" firstAttribute="top" secondItem="XgR-jp-VUJ" secondAttribute="top" constant="12" id="3xZ-MZ-f3I"/>
<constraint firstItem="aJM-2t-hFP" firstAttribute="centerX" secondItem="XgR-jp-VUJ" secondAttribute="centerX" id="P2i-aA-ZJF"/>
<constraint firstItem="fqH-WX-zEA" firstAttribute="centerX" secondItem="XgR-jp-VUJ" secondAttribute="centerX" constant="1" id="dhW-15-2LC"/>
<constraint firstAttribute="width" secondItem="XgR-jp-VUJ" secondAttribute="height" multiplier="1:1" id="fVj-dY-YeA"/>
<constraint firstAttribute="bottom" secondItem="aJM-2t-hFP" secondAttribute="bottom" constant="16" id="pvb-40-kKm"/>
<constraint firstItem="yat-Uk-2j1" firstAttribute="centerX" secondItem="XgR-jp-VUJ" secondAttribute="centerX" constant="0.5" id="t5T-IV-EBK"/>
<constraint firstItem="fqH-WX-zEA" firstAttribute="centerY" secondItem="XgR-jp-VUJ" secondAttribute="centerY" id="vdQ-y0-8o5"/>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="88" id="zgI-yU-SUl"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" red="1" green="0.70196078431372544" blue="0.70196078431372544" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="kdE-Q9-u1i" firstAttribute="top" secondItem="f8a-yz-Ecb" secondAttribute="bottom" constant="-6" id="33L-Pm-zjw"/>
<constraint firstItem="XgR-jp-VUJ" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="11" id="F2r-eg-vAz"/>
<constraint firstAttribute="trailing" secondItem="XgR-jp-VUJ" secondAttribute="trailing" constant="111" id="UwV-Lm-aak"/>
<constraint firstItem="f8a-yz-Ecb" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="VMM-iR-qKh"/>
<constraint firstItem="gnX-9k-8vZ" firstAttribute="top" secondItem="XgR-jp-VUJ" secondAttribute="bottom" constant="28" id="ZbD-KV-Yoz"/>
<constraint firstItem="f8a-yz-Ecb" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="3" id="fed-Wy-3U8"/>
<constraint firstItem="XgR-jp-VUJ" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="109" id="mKf-YY-Itt"/>
<constraint firstItem="kdE-Q9-u1i" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="22" id="ts5-1h-1Td"/>
<constraint firstAttribute="bottom" secondItem="gnX-9k-8vZ" secondAttribute="bottom" constant="10.5" id="vj7-z2-psS"/>
<constraint firstItem="gnX-9k-8vZ" firstAttribute="centerX" secondItem="H2p-sc-9uM" secondAttribute="centerX" id="yyH-1k-nnl"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="guizeBtn" destination="f8a-yz-Ecb" id="SD6-Nh-Jyz"/>
<outlet property="rankLabe" destination="gnX-9k-8vZ" id="t9F-Tk-4eP"/>
<outlet property="timeLabe" destination="fqH-WX-zEA" id="mMl-Mr-UNW"/>
<outlet property="timeView" destination="XgR-jp-VUJ" id="4GT-I5-bsa"/>
</connections>
<point key="canvasLocation" x="-16" y="21"/>
</tableViewCell>
</objects>
<resources>
<image name="history_rule" width="81" height="22"/>
</resources>
</document>

View File

@ -0,0 +1,19 @@
//
// MaskHistoryListViewCell.h
// GIGA
//
// Created by lianxiang on 2018/9/24.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "MaskHistryRecord.h"
@interface MaskHistoryListViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIButton *skinBtn;
@property (weak, nonatomic) IBOutlet UIButton *timeBtn;
@property (weak, nonatomic) IBOutlet UILabel *timeLabe;
@property (weak, nonatomic) IBOutlet UILabel *timesLabe;
-(void)loadCellDataAt:(NSIndexPath *)indepath recod:(MaskHistryRecord*)model;
@end

View File

@ -0,0 +1,48 @@
//
// MaskHistoryListViewCell.m
// GIGA
//
// Created by lianxiang on 2018/9/24.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "MaskHistoryListViewCell.h"
@implementation MaskHistoryListViewCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
self.timeBtn.layer.masksToBounds = YES;
self.timeBtn.layer.cornerRadius = 4;
self.skinBtn.layer.masksToBounds = YES;
self.skinBtn.layer.cornerRadius = 4;
}
-(void)loadCellDataAt:(NSIndexPath *)indepath recod:(MaskHistryRecord*)model
{
self.timesLabe.text = [NSString stringWithFormat:@"第%@天敷面膜",model.dayNum];
self.timeLabe.text = model.createTime;
if (![model.skinTypeName isKindOfClass:[NSNull class]] && model.skinTypeName) {
NSAttributedString *atrtskin = [GiGaHelper stringWithText:model.skinTypeName textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTMEDIUM(10) leterSpace:0];
[self.skinBtn setAttributedTitle:atrtskin forState:UIControlStateNormal];
}
if (![model.minute isKindOfClass:[NSNull class]] && model.minute) {
NSAttributedString *atrtskin = [GiGaHelper stringWithText:[NSString stringWithFormat:@"倒计时%@分钟",model.minute] textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTMEDIUM(10) leterSpace:0];
[self.timeBtn setAttributedTitle:atrtskin forState:UIControlStateNormal];
}
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" id="KGk-i7-Jjw" customClass="MaskHistoryListViewCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="90"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="320" height="89.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第1天敷面膜" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1Mm-qt-QLb">
<rect key="frame" x="16" y="10" width="65" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="NtX-Gc-7DK"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="12"/>
<color key="textColor" red="0.36078431372549019" green="0.36078431372549019" blue="0.36078431372549019" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2018-08-28 13:25:54" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2o1-kY-jHA">
<rect key="frame" x="16" y="35" width="111" height="14"/>
<fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="10"/>
<color key="textColor" red="0.58431372549019611" green="0.58431372549019611" blue="0.58431372549019611" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TIW-fP-uXf">
<rect key="frame" x="16" y="57" width="80" height="22"/>
<color key="backgroundColor" red="1" green="0.70196078429999997" blue="0.70196078429999997" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="0YO-kY-Taa"/>
<constraint firstAttribute="width" constant="80" id="mIe-rt-3fF"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="10"/>
<state key="normal" title="油性皮肤"/>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xUV-cj-Gt5">
<rect key="frame" x="104" y="57" width="80" height="22"/>
<color key="backgroundColor" red="0.51372549019607838" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="RmH-dv-yZm"/>
<constraint firstAttribute="width" constant="80" id="jvK-Kd-xnz"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="10"/>
<state key="normal" title="倒计时17分钟"/>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yqe-qC-fXL">
<rect key="frame" x="0.0" y="89" width="320" height="1"/>
<color key="backgroundColor" red="0.92156862745098034" green="0.92156862745098034" blue="0.92156862745098034" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="mA6-fk-aTf"/>
</constraints>
</view>
</subviews>
<constraints>
<constraint firstItem="TIW-fP-uXf" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="6Vu-gO-3O6"/>
<constraint firstItem="yqe-qC-fXL" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="HBX-nh-PB3"/>
<constraint firstAttribute="bottom" secondItem="yqe-qC-fXL" secondAttribute="bottom" constant="-0.5" id="PGB-TX-GMK"/>
<constraint firstItem="xUV-cj-Gt5" firstAttribute="centerY" secondItem="TIW-fP-uXf" secondAttribute="centerY" id="PNM-wS-Fbg"/>
<constraint firstItem="2o1-kY-jHA" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="QHa-BT-Kdi"/>
<constraint firstItem="1Mm-qt-QLb" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="Taa-On-Jut"/>
<constraint firstItem="xUV-cj-Gt5" firstAttribute="leading" secondItem="TIW-fP-uXf" secondAttribute="trailing" constant="8" id="gai-Tc-IfZ"/>
<constraint firstItem="1Mm-qt-QLb" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="10" id="giX-Bb-4ad"/>
<constraint firstAttribute="trailing" secondItem="yqe-qC-fXL" secondAttribute="trailing" id="goy-Cj-fyR"/>
<constraint firstItem="yqe-qC-fXL" firstAttribute="top" secondItem="TIW-fP-uXf" secondAttribute="bottom" constant="10" id="kyx-fN-eLe"/>
<constraint firstItem="TIW-fP-uXf" firstAttribute="top" secondItem="2o1-kY-jHA" secondAttribute="bottom" constant="8" id="xpc-On-9Xs"/>
<constraint firstItem="2o1-kY-jHA" firstAttribute="top" secondItem="1Mm-qt-QLb" secondAttribute="bottom" constant="8" id="yij-7s-itY"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="skinBtn" destination="TIW-fP-uXf" id="54G-fF-tNQ"/>
<outlet property="timeBtn" destination="xUV-cj-Gt5" id="Wt0-LN-jz0"/>
<outlet property="timeLabe" destination="2o1-kY-jHA" id="GLQ-Cw-isR"/>
<outlet property="timesLabe" destination="1Mm-qt-QLb" id="10I-Ke-pHj"/>
</connections>
<point key="canvasLocation" x="-50" y="-57"/>
</tableViewCell>
</objects>
</document>

View File

@ -9,6 +9,8 @@
#import <UIKit/UIKit.h>
@interface GIGaUserChangeMobleCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIButton *codeSendBtn;
@property (weak, nonatomic) IBOutlet UIButton *oldBtn;
@property (weak, nonatomic) IBOutlet UIButton *xinPhoneBtn;
@ -16,4 +18,6 @@
@property (weak, nonatomic) IBOutlet UITextField *numberTexFiled;
@property (weak, nonatomic) IBOutlet UITextField *codeTexFiled;
@end

View File

@ -7,6 +7,7 @@
//
#import "GIGaUserChangeMobleCell.h"
#import "NSTimer+Convenience.h"
@implementation GIGaUserChangeMobleCell

View File

@ -75,7 +75,7 @@
</constraints>
<color key="textColor" red="0.73333333333333328" green="0.73333333333333328" blue="0.73333333333333328" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="13"/>
<textInputTraits key="textInputTraits"/>
<textInputTraits key="textInputTraits" keyboardType="numberPad"/>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Xj0-4q-Lcf">
<rect key="frame" x="25" y="137" width="271" height="1"/>
@ -91,7 +91,7 @@
<constraint firstAttribute="height" constant="30" id="8iy-aa-Gc9"/>
<constraint firstAttribute="width" constant="59" id="eTQ-av-rBv"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="10"/>
<fontDescription key="fontDescription" name="PingFangSC-Semibold" family="PingFang SC" pointSize="10"/>
<state key="normal" title="发送验证码"/>
</button>
</subviews>