个人信息修改

This commit is contained in:
lianxiang 2018-09-18 20:13:59 +08:00
parent 2c81fa6c7d
commit 27e27d5d12
42 changed files with 981 additions and 54 deletions

View File

@ -32,6 +32,13 @@
8340BFAB213E665D008F22E4 /* GIGAUserLocalizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8340BFAA213E665D008F22E4 /* GIGAUserLocalizable.strings */; };
8340BFAF213E739D008F22E4 /* GiGaNoNetWorkView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8340BFAE213E739D008F22E4 /* GiGaNoNetWorkView.m */; };
8342D9FD2131150200D16B1D /* 4481.wav in Resources */ = {isa = PBXBuildFile; fileRef = 8342D9FC2131150200D16B1D /* 4481.wav */; };
8342FD7A2150C51100D141F4 /* GIGaFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8342FD792150C51100D141F4 /* GIGaFileManager.m */; };
8342FD7D2150F94600D141F4 /* AppVerionDescriptionVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 8342FD7C2150F94600D141F4 /* AppVerionDescriptionVC.m */; };
8342FD822150FA1500D141F4 /* AppVersionDescCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8342FD802150FA1500D141F4 /* AppVersionDescCell.m */; };
8342FD832150FA1500D141F4 /* AppVersionDescCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8342FD812150FA1500D141F4 /* AppVersionDescCell.xib */; };
8342FD862150FD5200D141F4 /* VersionModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8342FD852150FD5200D141F4 /* VersionModel.m */; };
8342FD8A2151095100D141F4 /* AppVersionLogoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8342FD882151095100D141F4 /* AppVersionLogoCell.m */; };
8342FD8B2151095100D141F4 /* AppVersionLogoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8342FD892151095100D141F4 /* AppVersionLogoCell.xib */; };
8345C13621414D3B00051717 /* NSString+Unicode.m in Sources */ = {isa = PBXBuildFile; fileRef = 8345C13521414D3B00051717 /* NSString+Unicode.m */; };
8349585C212511040064DB6C /* AppDelegate+ThirdParty.m in Sources */ = {isa = PBXBuildFile; fileRef = 8349585B212511040064DB6C /* AppDelegate+ThirdParty.m */; };
835060A2212D1225007E6220 /* GiGaMeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 835060A1212D1225007E6220 /* GiGaMeViewController.m */; };
@ -217,6 +224,18 @@
8340BFAD213E739D008F22E4 /* GiGaNoNetWorkView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiGaNoNetWorkView.h; sourceTree = "<group>"; };
8340BFAE213E739D008F22E4 /* GiGaNoNetWorkView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiGaNoNetWorkView.m; sourceTree = "<group>"; };
8342D9FC2131150200D16B1D /* 4481.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = 4481.wav; sourceTree = "<group>"; };
8342FD782150C51100D141F4 /* GIGaFileManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GIGaFileManager.h; sourceTree = "<group>"; };
8342FD792150C51100D141F4 /* GIGaFileManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GIGaFileManager.m; sourceTree = "<group>"; };
8342FD7B2150F94600D141F4 /* AppVerionDescriptionVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppVerionDescriptionVC.h; sourceTree = "<group>"; };
8342FD7C2150F94600D141F4 /* AppVerionDescriptionVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppVerionDescriptionVC.m; sourceTree = "<group>"; };
8342FD7F2150FA1500D141F4 /* AppVersionDescCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppVersionDescCell.h; sourceTree = "<group>"; };
8342FD802150FA1500D141F4 /* AppVersionDescCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppVersionDescCell.m; sourceTree = "<group>"; };
8342FD812150FA1500D141F4 /* AppVersionDescCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AppVersionDescCell.xib; sourceTree = "<group>"; };
8342FD842150FD5200D141F4 /* VersionModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VersionModel.h; sourceTree = "<group>"; };
8342FD852150FD5200D141F4 /* VersionModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VersionModel.m; sourceTree = "<group>"; };
8342FD872151095100D141F4 /* AppVersionLogoCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppVersionLogoCell.h; sourceTree = "<group>"; };
8342FD882151095100D141F4 /* AppVersionLogoCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppVersionLogoCell.m; sourceTree = "<group>"; };
8342FD892151095100D141F4 /* AppVersionLogoCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AppVersionLogoCell.xib; sourceTree = "<group>"; };
8345C13421414D3B00051717 /* NSString+Unicode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+Unicode.h"; sourceTree = "<group>"; };
8345C13521414D3B00051717 /* NSString+Unicode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+Unicode.m"; sourceTree = "<group>"; };
8349585A212511040064DB6C /* AppDelegate+ThirdParty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AppDelegate+ThirdParty.h"; sourceTree = "<group>"; };
@ -558,6 +577,19 @@
path = Views;
sourceTree = "<group>";
};
8342FD7E2150F94F00D141F4 /* AppVerionDescCells */ = {
isa = PBXGroup;
children = (
8342FD7F2150FA1500D141F4 /* AppVersionDescCell.h */,
8342FD802150FA1500D141F4 /* AppVersionDescCell.m */,
8342FD812150FA1500D141F4 /* AppVersionDescCell.xib */,
8342FD872151095100D141F4 /* AppVersionLogoCell.h */,
8342FD882151095100D141F4 /* AppVersionLogoCell.m */,
8342FD892151095100D141F4 /* AppVersionLogoCell.xib */,
);
path = AppVerionDescCells;
sourceTree = "<group>";
};
835060A6212D38BC007E6220 /* GiGaStartAdView */ = {
isa = PBXGroup;
children = (
@ -640,6 +672,8 @@
8357ADC82123BFCA000816F2 /* GiGaUserManager.m */,
8357ADD62124027D000816F2 /* GiGaUserDefault.h */,
8357ADD72124027D000816F2 /* GiGaUserDefault.m */,
8342FD782150C51100D141F4 /* GIGaFileManager.h */,
8342FD792150C51100D141F4 /* GIGaFileManager.m */,
);
path = GiGaUserDB;
sourceTree = "<group>";
@ -855,6 +889,8 @@
children = (
8357ADC32123BEBD000816F2 /* GiGaUser.h */,
8357ADC42123BEBD000816F2 /* GiGaUser.m */,
8342FD842150FD5200D141F4 /* VersionModel.h */,
8342FD852150FD5200D141F4 /* VersionModel.m */,
);
path = Model;
sourceTree = "<group>";
@ -862,6 +898,7 @@
8361B42A212180A100238FEB /* View */ = {
isa = PBXGroup;
children = (
8342FD7E2150F94F00D141F4 /* AppVerionDescCells */,
838762CF214B9CAA0039D241 /* userInfoView */,
83BFAE64213CCF10004EF801 /* GiGaMineUserViewCell.h */,
83BFAE65213CCF10004EF801 /* GiGaMineUserViewCell.m */,
@ -889,6 +926,8 @@
83BFAE6F213CDB29004EF801 /* GiMaskTimeHistoryVC.m */,
83BFAE71213CDB58004EF801 /* GiSysSettingsVC.h */,
83BFAE72213CDB58004EF801 /* GiSysSettingsVC.m */,
8342FD7B2150F94600D141F4 /* AppVerionDescriptionVC.h */,
8342FD7C2150F94600D141F4 /* AppVerionDescriptionVC.m */,
);
path = Controller;
sourceTree = "<group>";
@ -1359,6 +1398,7 @@
83346AD1212BF5B70054D597 /* useragreement.html in Resources */,
838762D9214B9EF80039D241 /* GIGaUserIDViewCell.xib in Resources */,
838762E8214B9FA60039D241 /* GIGaUserCityViewCell.xib in Resources */,
8342FD8B2151095100D141F4 /* AppVersionLogoCell.xib in Resources */,
83BFAE68213CCF10004EF801 /* GiGaMineUserViewCell.xib in Resources */,
8340BFA9213E65CA008F22E4 /* GIGACommonLocalizabe.strings in Resources */,
83835BA8212E4748001480F2 /* MAssaageCenterCell.xib in Resources */,
@ -1368,6 +1408,7 @@
8340BFAB213E665D008F22E4 /* GIGAUserLocalizable.strings in Resources */,
8342D9FD2131150200D16B1D /* 4481.wav in Resources */,
83835BB0212E4FCD001480F2 /* MessageListViewCell.xib in Resources */,
8342FD832150FA1500D141F4 /* AppVersionDescCell.xib in Resources */,
8338F6B12142182200B4780B /* MaskTime.png in Resources */,
83346ACF212BD7830054D597 /* GiGaWebViewController.xib in Resources */,
);
@ -1490,6 +1531,7 @@
8384643E214A484400F12B33 /* MaskTestResult.m in Sources */,
83346AD4212BFF6E0054D597 /* UserGuardViewController.m in Sources */,
83BC8A8A2148D28300820437 /* QustionAnswer.m in Sources */,
8342FD7D2150F94600D141F4 /* AppVerionDescriptionVC.m in Sources */,
8357ADC92123BFCA000816F2 /* GiGaUserManager.m in Sources */,
8390116F214E20B2004CA790 /* LYSDatePickerViewController.m in Sources */,
83835BB3212E50ED001480F2 /* ActiveMesagelistVC.m in Sources */,
@ -1509,6 +1551,7 @@
8357ADCD2123C091000816F2 /* GiGaNetManager.m in Sources */,
838388D4212FB7D700D14C53 /* JXTAlertView.m in Sources */,
83901178214E20B2004CA790 /* LYSDatePickerItem.m in Sources */,
8342FD8A2151095100D141F4 /* AppVersionLogoCell.m in Sources */,
83773FC221479FED0014EE4C /* UIColor+HexColor.m in Sources */,
83901172214E20B2004CA790 /* LYSDatePickerTypeDayAndTimeDelegate.m in Sources */,
835060A9212D38EE007E6220 /* GiGaStartAdView.m in Sources */,
@ -1535,6 +1578,7 @@
8338F6B92142504E00B4780B /* LXCustomSwith.m in Sources */,
8357ADD32123C7C6000816F2 /* GiGaAPIResult.m in Sources */,
8340BF9E213E3846008F22E4 /* SHineLabel.m in Sources */,
8342FD862150FD5200D141F4 /* VersionModel.m in Sources */,
838762D3214B9D120039D241 /* GIGaUserInfoAvatorCell.m in Sources */,
8361B4352121836700238FEB /* GiGaBaseNavViewController.m in Sources */,
835060B3212D54C2007E6220 /* GiGaAdDetailViewController.m in Sources */,
@ -1546,6 +1590,7 @@
8392900C2134F9F80077D2E8 /* GiGaCommentView.m in Sources */,
839290062134F4240077D2E8 /* LXDanMuManager.m in Sources */,
833DE8E52150169F009D4329 /* JYAddressPicker.m in Sources */,
8342FD7A2150C51100D141F4 /* GIGaFileManager.m in Sources */,
83901171214E20B2004CA790 /* LYSDatePickerLabel.m in Sources */,
838762E2214B9F580039D241 /* GiGaUserSexViewCell.m in Sources */,
839290052134F4240077D2E8 /* LXDanMuTrackView.m in Sources */,
@ -1556,6 +1601,7 @@
83E40B2B21218B6F008149C4 /* GiGaExercisesViewController.m in Sources */,
8390117B214E20B2004CA790 /* LYSDatePickerHeaderView.m in Sources */,
838762E7214B9FA60039D241 /* GIGaUserCityViewCell.m in Sources */,
8342FD822150FA1500D141F4 /* AppVersionDescCell.m in Sources */,
83BFAE77213CDE91004EF801 /* GiGaSettingsViewCell.m in Sources */,
83835BA7212E4748001480F2 /* MAssaageCenterCell.m in Sources */,
836EE5D42136454500F0ABB2 /* RegistGetSMSCodeRequest.m in Sources */,

View File

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

View File

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

View File

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

View File

@ -32,4 +32,5 @@
title:(NSString *)aTitle;
+ (void)messageAddto:(UIView *)aView title:(NSString *)aTitle;
@end

View File

@ -65,5 +65,7 @@
*/
+(BOOL)checkPassWord:(NSString *)pass;
//
+(int)convertToInt:(NSString*)strtemp;
@end

View File

@ -265,4 +265,21 @@
return NO;
}
//
+(int)convertToInt:(NSString*)strtemp
{
int strlength = 0;
char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return strlength;
}
@end

View File

@ -131,4 +131,10 @@ typedef void (^GiGaRequestResultBlock)(GiGaAPIResult *result);
//+ (NSString *)resizeImageUrl:(NSString *)originImageUrl
// size:(CGSize)size;
+(void)userTokenTimeOutGologinFromVC:(UIViewController *)vc;
@end

View File

@ -10,6 +10,7 @@
#import "GiGaServerConfig.h"
#import <JSONModel/JSONModel.h>
#import "GiGaNetManager.h"
#import "GiGaUserLoginVC.h"
@implementation GiGaBaseAPiRequest
@ -159,4 +160,13 @@
}
+(void)userTokenTimeOutGologinFromVC:(UIViewController *)vc{
GiGaUserLoginVC *userlogInVC= [[GiGaUserLoginVC alloc] init];
GiGaBaseNavViewController *baseNav = [[GiGaBaseNavViewController alloc] initWithRootViewController:userlogInVC];
[vc presentViewController:baseNav animated:YES completion:nil];
}
@end

View File

@ -19,9 +19,13 @@ typedef void (^responseBlock)(NSDictionary *responseDict, NSDictionary *response
success:(void (^)(id response))success
failure:(void (^)(NSError *err))failure;
// 测试题 登录
// 测试题 登录 body 传参
+(void)userbodyRequest:(NSString *)url params:(NSDictionary *)param completionHandler:(nullable void (^)(NSURLResponse *response, NSDictionary *resDic, NSError * _Nullable error))completionHandler;
//上传图片
+(void)uploadImage:(NSString *)url
imgData:(NSData *)imgData
parms:(NSDictionary *)parms
responseBlock:(responseBlock)block;
@end

View File

@ -131,7 +131,57 @@
}
+(void)uploadImage:(NSString *)url
imgData:(NSData *)imgData
parms:(NSDictionary *)parms
responseBlock:(responseBlock)block{
AFHTTPSessionManager*manager=[[AFHTTPSessionManager alloc] init];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
NSString *token = [GiGaUserDefault getCurentToken];
if (token) {
[manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
}
[manager POST:url parameters:parms constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
//使
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyyMMddHHmmss";
NSString *str = [formatter stringFromDate:[NSDate date]];
NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];
//
[formData appendPartWithFileData:imgData name:@"file" fileName:fileName mimeType:@"image/jpeg"];
NSString *userId = [GiGaUserDefault getCurentUserId];
if (!userId) {
userId = @"avator123";
}
[formData appendPartWithFormData:imgData name:userId];
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", dict);
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
if (block) {
block(dict, headerFields, nil);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
if (block) {
block(nil, headerFields, error);
}
}];
}
@end

View File

@ -0,0 +1,18 @@
//
// GIGaFileManager.h
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface GIGaFileManager : NSObject
+(void)savaUserAvatorWith:(NSString *)userId image:(UIImage *)image;
+(UIImage *)getUserAvatorWith:(NSString *)userId;
+ (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size;
+ (UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image size:(CGSize)asize;
@end

View File

@ -0,0 +1,87 @@
//
// GIGaFileManager.m
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "GIGaFileManager.h"
@implementation GIGaFileManager
+(void)savaUserAvatorWith:(NSString *)userId image:(UIImage *)image{
if (!userId) {
GILog(@"userID nil !!!");
return;
}
NSData*imageData=UIImageJPEGRepresentation(image,1.0f);
NSString *fullPath=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:userId];
[imageData writeToFile:fullPath atomically:YES];
}
+ (UIImage *)getUserAvatorWith:(NSString *)userId{
if (!userId) {
GILog(@"userID nil !!!");
return nil;
}
NSString*fullpath=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:userId];
UIImage*saveImage=[[UIImage alloc]initWithContentsOfFile:fullpath];
if (!saveImage) {
saveImage = [UIImage imageNamed:@"img_circle_avatar"];
}
return saveImage;
}
// 便
+ (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size
{
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
//
+ (UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image size:(CGSize)asize
{
UIImage *newimage;
if (nil == image) {
newimage = nil;
}
else{
CGSize oldsize = image.size;
CGRect rect;
if (asize.width/asize.height > oldsize.width/oldsize.height) {
rect.size.width = asize.width*oldsize.height/oldsize.width;
// rect.size.height = asize.height*oldsize.height/oldsize.width;
rect.size.height = asize.width*oldsize.height/oldsize.width;
rect.origin.x = (asize.width - rect.size.width)/2;
rect.origin.y = 0;
}
else{
//rect.size.width = asize.width;
rect.size.width = asize.height*oldsize.width/oldsize.height;
rect.size.height = asize.height*oldsize.width/oldsize.height;
rect.origin.x = 0;
rect.origin.y = (asize.height - rect.size.height)/2;
}
UIGraphicsBeginImageContext(asize);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);
UIRectFill(CGRectMake(0, 0, asize.width, asize.height));//clear background
[image drawInRect:rect];
newimage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
return newimage;
}
@end

View File

@ -101,7 +101,7 @@ const static NSInteger GIGADB_USER_VER = 0;//当前数据库版本号
NSString *useriD = [GiGaUserDefault getCurentUserId];
NSArray *usrA= [_store getObjectById:useriD fromTable:GIGA_USER_TABLE];
if (usrA && usrA.count > 0) {
//self.user = usrA[0];
NSDictionary *userdic = usrA[0];
GiGaUser *user = [[GiGaUser alloc] initWithDictionary:userdic error:nil];;
self.user = user;

View File

@ -19,6 +19,7 @@
#define kFixUserInfo @"user/v1/editinfo"
//头像上传
#define kUploadAvator @"sys/oss/v1/upload"
//版本说明
#define kAPiAPPVersion @"sys/maskversionarticle/v1/list"
#endif /* ApiRequestConfig_h */

View File

@ -47,6 +47,8 @@ UD_SYNC
#define kUserLoginSuccessNoti @"gigaUserloginSuccess"
//退出登录
#define kUserLogOutNotify @"userLogOutNotify"
//用户头像修改
#define kUserAvatorUpdateNoti @"userAvatorUpdate"
//微信登陆授权成功
#define kWeiXinAuthrization_Success @"WXAuthSuccess"
@ -86,7 +88,7 @@ alpha:((float)(rgbValue & 0xFF))/255.0]
//X
//底部工具栏需要为home indicator留出34pt边距
#define PhoneX_BottomMargin ([UIScreen mainScreen].bounds.size.height == 44.0 ? 34.0 :0.0)
#define PhoneX_BottomMargin ([[UIApplication sharedApplication] statusBarFrame].size.height == 44.0 ? 34.0 :0.0)
//状态栏高度由20pt变成44pt导航栏以上变化64->88。
#define PhoneX_TopMargin ([[UIApplication sharedApplication] statusBarFrame].size.height == 44.0 ? 24.0 :0.0)

View File

@ -41,6 +41,14 @@
<string>wx1fa33defa5cbc8dd</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>Prefs</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1</string>
@ -55,6 +63,10 @@
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSCameraUsageDescription</key>
<string>是否允许此App使用您的 相机?</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>是否允许此App使用您的相册</string>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>

View File

@ -246,6 +246,7 @@
@"code":notification.object[@"code"],
@"grant_type":@"authorization_code"
};
[WeiIXinApiManager weixinAccessTokeRequstUrl:@"https://api.weixin.qq.com/sns/oauth2/access_token" parameters:param success:^(id response) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:nil];
GILog(@"access_token back -->%@",dict);

View File

@ -502,6 +502,7 @@
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) ;
}
#pragma mark 广
@ -530,6 +531,9 @@
NC_REMOVE_NAME(self, USER_GUARD_DISSMISS, nil);
NC_REMOVE_NAME(self, APP_GUARD_DISSMISS, nil);
NC_REMOVE_NAME(self, APP_PUSHTO_DETAILVIEW, nil);
NC_REMOVE_NAME(self, kUserAvatorUpdateNoti, nil);
NC_REMOVE_NAME(self, kUserLogOutNotify, nil);
NC_REMOVE_NAME(self, kUserLoginSuccessNoti, nil);
}
#pragma mark
@ -671,4 +675,13 @@
}
#pragma mark -
-(void)userAvatorUpDate{
GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser];
if (user.headImgUrl && ![user.headImgUrl isKindOfClass:[NSNull class]] ) {
[self refreshUserIcon:user.headImgUrl];
}
}
@end

View File

@ -0,0 +1,13 @@
//
// AppVerionDescriptionVC.h
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import "GiGaBaseViewController.h"
@interface AppVerionDescriptionVC : GiGaBaseViewController
@end

View File

@ -0,0 +1,133 @@
//
// AppVerionDescriptionVC.m
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "AppVerionDescriptionVC.h"
#import "AppVersionDescCell.h"
#import "GiGaBaseAPiRequest.h"
#import "VersionModel.h"
#import "AppVersionLogoCell.h"
@interface AppVerionDescriptionVC ()
@property (nonatomic,strong) NSMutableArray *versionsArr;
@property (nonatomic) int currntPage ;
@property (nonatomic) int totalPage ;
@end
@implementation AppVerionDescriptionVC
- (void)viewDidLoad {
[super viewDidLoad];
_currntPage = 1;
_totalPage = 1;
self.versionsArr = [[NSMutableArray alloc] init];
[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, 1, KMainW, self.view.bounds.size.height - SAFE_NAV_HEIGHT);
[self requstListDatas];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1 + self.versionsArr.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 0) {
AppVersionLogoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AppVersionLogoCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"AppVersionLogoCell" owner:self options:nil] lastObject];
}
return cell;
}
AppVersionDescCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AppVersionDescCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"AppVersionDescCell" owner:self options:nil] lastObject];
}
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 0) {
return 173.f;
}else{
return 92 + 25 * self.versionsArr.count;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 0.1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 0){
return 0.1;
}else if (section == 1){
return 12;
}
return 4;
}
-(void)requstListDatas{
GiGaBaseAPiRequest *reuqest = [GiGaBaseAPiRequest initWithRequestPath:kAPiAPPVersion method:RequestPostMethod parms:@{}];
[reuqest requstDataWithResult:^(GiGaAPIResult *result) {
if (result.success) {
GILog(@"%@",result.dic);
self->_currntPage = [result.dic[@"currPage"] intValue];
self->_totalPage = [result.dic[@"totalPage"] intValue];
NSDictionary *pagedic = result.dic[@"page"];
NSArray *listArr = pagedic[@"list"];
for (NSDictionary *dic in listArr) {
VersionModel *model = [[VersionModel alloc] initWithDictionary:dic error:nil];
[self.versionsArr addObject:model];
}
[self.tableView reloadData];
}
}];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// 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.
}
*/
@end

View File

@ -15,6 +15,7 @@
#import "UINavigationBar+Custom.h"
#import "GiGaBaseAPiRequest.h"
#import "GiGaUserManager.h"
#import "UIImageView+WebCache.h"
@interface GiGaMeViewController ()
@property (nonatomic,strong) GiGaUser *user;
@ -39,6 +40,21 @@
self.tableView.bounces = NO;
self.tableView.frame = CGRectMake(0, 1, KMainW, self.view.bounds.size.height - SAFE_NAV_HEIGHT);
[self loadUserInfo];
NC_ADD_TARGET_NAME_OBJECT(self, @selector(userAvatorUpDate), kUserAvatorUpdateNoti, nil) ;
}
-(void)dealloc{
NC_REMOVE_NAME(self, kUserAvatorUpdateNoti, nil);
}
-(void)userAvatorUpDate{
GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser];
if (user.headImgUrl && ![user.headImgUrl isKindOfClass:[NSNull class]] ) {
GiGaMineUserViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
NSURL *url = [NSURL URLWithString:user.headImgUrl];
[cell.userAvator sd_setImageWithURL:url];
}
}

View File

@ -18,8 +18,14 @@
#import "JYAddressPicker.h"
#import "GiGaBaseAPiRequest.h"
#import "GiGaUserJobViewCell.h"
#import <AVFoundation/AVFoundation.h>
#import "GIGaFileManager.h"
#import "GiGaUserDefault.h"
#import "GiGaNetManager.h"
#import "GiGaServerConfig.h"
#import "GiGaAPIResult.h"
@interface GiGaUserViewController ()<LYSDatePickerSelectDelegate>
@interface GiGaUserViewController ()<LYSDatePickerSelectDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
@property (nonatomic,strong) GiGaUser *user;
@property (nonatomic,strong) NSMutableArray *jobArr;
@property (nonatomic) BOOL jobSpread;
@ -69,7 +75,6 @@
self.tableView.bounces = YES;
self.tableView.frame = CGRectMake(0, 1, KMainW,self.view.bounds.size.height - SAFE_NAV_HEIGHT);
[self.tableView registerClass: [GiGaUserJobViewCell class] forCellReuseIdentifier:@"GiGaUserJobViewCell"];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
@ -95,21 +100,25 @@
GIGaUserInfoAvatorCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GIGaUserInfoAvatorCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"GIGaUserInfoAvatorCell" owner:self options:nil] lastObject];
UITapGestureRecognizer *tapGestrue = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(userAvatorClick)];
[cell.userAvator addGestureRecognizer:tapGestrue];
}
[cell loadCellData:indexPath user:self.user];
return cell;
}else if (indexPath.section == 1 && indexPath.row < 2){
}else if (indexPath.section == 1 && indexPath.row ==0){
GIGaUserIDViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GIGaUserIDViewCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"GIGaUserIDViewCell" owner:self options:nil] lastObject];
}
[cell loadCellData:indexPath user: self.user];
[cell loadCellData:indexPath user: self.user];
return cell;
}else if (indexPath.section == 1 && indexPath.row == 2){
}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];
@ -139,6 +148,7 @@
cell = [[[NSBundle mainBundle] loadNibNamed:@"GIGaUserCityViewCell" owner:self options:nil] lastObject];
}
[cell loadCellData:indexPath user:self.user];
return cell;
}else if (indexPath.section == 3){
static NSString *cellID = @"GiGaUserJobViewCell";
@ -148,13 +158,10 @@
}
[cell userSelectjobAction:^() {
self.jobSpread = !self.jobSpread;
[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];
@ -162,7 +169,6 @@
return cell;
}
return nil;
}
@ -182,19 +188,49 @@
}];
}else if (indexPath.section == 2 && indexPath.row == 2){
JYAddressPicker *addressPicker = [JYAddressPicker jy_showAt:self];
NSMutableArray *defalutvaluses = [NSMutableArray new];
if (self.user.provinceId && ![self.user.provinceId isKindOfClass:[NSNull class]]) {
[defalutvaluses addObject:self.user.provinceId];
}else{
[defalutvaluses addObject:@""];
}
if (self.user.cityId && ![self.user.cityId isKindOfClass:[NSNull class]]) {
[defalutvaluses addObject:self.user.cityId];
}else{
[defalutvaluses addObject:@""];
}
if (self.user.areaId && ![self.user.areaId isKindOfClass:[NSNull class]]) {
[defalutvaluses addObject:self.user.areaId];
}else{
[defalutvaluses addObject:@""];
}
JYAddressPicker *addressPicker = [JYAddressPicker jy_showAt:self defaultShow:defalutvaluses];
//JYAddressPicker *addressPicker = [JYAddressPicker jy_showAt:self];
weakify(self);
addressPicker.selectedItemBlock = ^(NSArray *addressArr) {
NSString *province = [addressArr objectAtIndex:0][@"name"];
NSString *provinceID = [addressArr objectAtIndex:0][@"id"];
NSString *city = [addressArr objectAtIndex:1][@"name"];
NSString *cityID = [addressArr objectAtIndex:1][@"id"];
NSString *county = [addressArr objectAtIndex:2][@"name"];
NSString *countyID = [addressArr objectAtIndex:2][@"id"];
NSString *addres = [NSString stringWithFormat:@"%@%@%@",province,city,county];
GILog(@"%@",addres);
GIGaUserCityViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
weakSelf.user.provinceName = province;
weakSelf.user.provinceId = provinceID;
weakSelf.user.cityName = city;
weakSelf.user.cityId = cityID;
weakSelf.user.areaName = county;
weakSelf.user.areaId = countyID;
[cell loadCellData:indexPath user:self.user];
};
@ -249,10 +285,24 @@
#pragma mark -
-(void)saveUserInfo{
GIGaUserWeChatViewCell *nickcell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:1]];
self.user.nickName = nickcell.weiXinCount.text;
GIGaUserWeChatViewCell *chatcell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:1]];
self.user.weixin = chatcell.weiXinCount.text;
if (!self.user.nickName || [self.user.nickName isKindOfClass:[NSNull class]]) {
self.user.nickName = @"";
}
int leng = [GiGaHelper convertToInt: self.user.nickName];
if ( leng >40 ) {
GIGA_ShowToast(@"用户名1-40字符长度")
return;
}
if (!self.user.weixin || [self.user.weixin isKindOfClass:[NSNull class]]) {
self.user.weixin = @"";
}
@ -264,10 +314,21 @@
self.user.occupationCode = @"";
}
if (!self.user.provinceId|| [self.user.provinceId isKindOfClass:[NSNull class]]) {
self.user.provinceId = @"";
}
if (!self.user.cityId|| [self.user.cityId isKindOfClass:[NSNull class]]) {
self.user.cityId = @"";
}
if (!self.user.areaId|| [self.user.areaId isKindOfClass:[NSNull class]]) {
self.user.areaId = @"";
}
[self.view makeToastActivity:CSToastPositionCenter];
NSDictionary *param = @{
@"provinceId":@"1_11",
@"cityId":@"1_11",
@"areaId":@"1_11_8",
@"provinceId":self.user.provinceId,
@"cityId":self.user.cityId,
@"areaId":self.user.areaId,
@"nickName":self.user.nickName,
@"weixin":self.user.weixin,
@"sexCode":[NSString stringWithFormat:@"%d",self.user.sexCode],
@ -278,13 +339,19 @@
GiGaBaseAPiRequest *api =[GiGaBaseAPiRequest initWithRequestPath:kFixUserInfo method:RequestPostMethod parms:param];
[api requstDataWithResult:^(GiGaAPIResult *result) {
[self.view hideToastActivity];
if (result.success) {
GIGA_ShowToast(@"修改成功");
[[GiGaUserManager shareUser] saveUser:self.user];
}else{
GIGA_ShowToast(result.dic[@"msg"]);
if (result.code == 401) {
//token
[GiGaBaseAPiRequest userTokenTimeOutGologinFromVC:self];
}
}
}];
}
#pragma mark -
@ -293,21 +360,158 @@
GiGaBaseAPiRequest *api =[GiGaBaseAPiRequest initWithRequestPath:kApiOccuption method:RequestPostMethod parms:param];
[api requstDataWithResult:^(GiGaAPIResult *result) {
if (result.success) {
GILog(@"%@",result.dic);
// GILog(@"%@",result.dic);
NSDictionary *dic = result.dic;
NSArray *josA = dic[@"list"];
for (NSDictionary *jobDic in josA ) {
[self.jobArr addObject:jobDic[@"dictLabel"]];
}
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:3] withRowAnimation:UITableViewRowAnimationNone];
}else{
NSString *msg = result.dic[@"msg"];
GIGA_ShowToast(msg);
}
}];
}
#pragma mark -
-(void)userAvatorClick{
[self showCameraAndPhotoAlert];
}
-(void)showCameraAndPhotoAlert{
UIAlertController *alertSheet = [UIAlertController alertControllerWithTitle:@"选择头像" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.delegate = self; imagePickerController.allowsEditing = YES;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//使
NSString *mediaType = AVMediaTypeVideo;//
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];//
if(authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied){
NSString *errorStr = @"应用相机权限受限,请在设置中启用";
[self jxt_showAlertWithTitle:@"" message:errorStr appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) {
alertMaker.addActionCancelTitle(@"取消");
alertMaker.addActionDefaultTitle(@"去开启");
} actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) {
if (buttonIndex == 1) {
NSString *urlStr = @"App-Prefs:root=Photos";
if (@available(iOS 10.0, *)) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr] options:@{} completionHandler:nil];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];
// Fallback on earlier versions
}
}
}];
return;
}
//
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:imagePickerController animated:YES completion:nil]; }];
[alertSheet addAction:cameraAction];
}
//
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
//
UIAlertAction *photoAction = [UIAlertAction actionWithTitle:@"从手机相册选择" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:imagePickerController animated:YES completion:nil];
}];
[alertSheet addAction:photoAction];
}else{
NSString *errorStr = @"应用相权册限受限,请在设置中启用";
[self jxt_showAlertWithTitle:@"" message:errorStr appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) {
alertMaker.addActionCancelTitle(@"取消");
alertMaker.addActionDefaultTitle(@"去开启");
} actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) {
if (buttonIndex == 1) {
NSURL *url = [NSURL URLWithString:@"prefs:root=Photos"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
}
}];
}
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
[alertSheet addAction:cancelAction];
[self presentViewController:alertSheet animated:YES completion:nil];
}
-(void)camreaAction{
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
GILog(@"info:%@",info);
[picker dismissViewControllerAnimated:YES completion:nil]
;
UIImage*img=[info objectForKey:UIImagePickerControllerEditedImage];
UIImage *samall = [GIGaFileManager thumbnailWithImageWithoutScale:img size:CGSizeMake(300, 300)];
NSString *userid = [GiGaUserDefault getCurentUserId];
[GIGaFileManager savaUserAvatorWith:userid image:samall];
GIGaUserInfoAvatorCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
cell.userAvator.image = samall;
[self uploadImage:samall];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
[picker dismissViewControllerAnimated:YES completion:nil];
}
#pragma mark upload image
-(void)uploadImage:(UIImage *)image{
[self.view makeToastActivity:CSToastPositionCenter];
NSString *url = [NSString stringWithFormat:@"%@%@",[GiGaServerConfig getMainUrl],kUploadAvator];
//NSString *userID = [GiGaUserDefault getCurentUserId];
//UIImage *avator =[GIGaFileManager getUserAvatorWith:userID];
NSData*imageData=UIImageJPEGRepresentation(image,1.0f);
[GiGaNetManager uploadImage:url imgData:imageData parms:@{@"file":@"file"} responseBlock:^(NSDictionary *responseDict, NSDictionary *responseHeaderFields, NSError *error) {
[self.view hideToastActivity];
GiGaAPIResult *reullt = [[GiGaAPIResult alloc] initWithDictionary:responseDict];
if (error) {
GILog(@"eror:%@",error.localizedDescription);
return ;
}
if (reullt.success) {
GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser];
NSString *newurl = responseDict[@"url"];
self.user.headImgUrl = newurl;
if (newurl) {
user.headImgUrl = newurl;
}
[[GiGaUserManager shareUser] saveUser:user];
NC_POST_NAME_OBJECT(kUserAvatorUpdateNoti, nil);
GIGA_ShowToast(@"👮‍♀️修改成功")
}else{
GIGA_ShowToast(reullt.message);
}
}];
}
@end

View File

@ -11,6 +11,7 @@
#import "JXTAlertController.h"
#import "GiGaUserDefault.h"
#import "GiGaUserManager.h"
#import "AppVerionDescriptionVC.h"
@interface GiSysSettingsVC ()
@ -56,12 +57,32 @@
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (indexPath.row == 0) {
[self jxt_showAlertWithTitle:@"提示" message:@"确定清楚缓存?" appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) {
alertMaker.addActionCancelTitle(@"取消");
alertMaker.addActionDefaultTitle(@"确定");
} actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) {
if (buttonIndex == 1) {
GiGaSettingsViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.cachLabe.text = @"0M";
}
}];
}else if (indexPath.row == 1){
}else if (indexPath.row == 2){
}else if (indexPath.row == 3){
AppVerionDescriptionVC *verVC =[[AppVerionDescriptionVC alloc] init];
[self.navigationController pushViewController:verVC animated:YES];
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 54;
return 44;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
@ -120,7 +141,7 @@
}
}];
}
//http://yts.s1.natapp.cc/mask/clearZear.html
-(void)userlogOut{
[[GiGaUserManager shareUser] loginOut];

View File

@ -0,0 +1,17 @@
//
// VersionModel.h
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <JSONModel/JSONModel.h>
@interface VersionModel : JSONModel
@property (nonatomic,copy) NSString *content;
@property (nonatomic,copy) NSString *createTime;
@property (nonatomic,copy) NSString *ver_id;
@property (nonatomic,copy) NSString *title;
@property (nonatomic,copy) NSString *type;
@end

View File

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

View File

@ -0,0 +1,14 @@
//
// AppVersionDescCell.h
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppVersionDescCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *VersionDescLabel;
@end

View File

@ -0,0 +1,26 @@
//
// AppVersionDescCell.m
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "AppVersionDescCell.h"
@implementation AppVersionDescCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
//self.VersionDescLabel.text = @"1.版本有优化\n2.版本有优化\n3.版本有优化\n4.版本有优化\n5.版本有优化\n";
}
- (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,53 @@
<?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" reuseIdentifier="AppVersionDescCell" id="KGk-i7-Jjw" customClass="AppVersionDescCell">
<rect key="frame" x="0.0" y="0.0" width="375" height="92"/>
<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="375" height="91.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JXV-Zf-Ztb">
<rect key="frame" x="0.0" y="40" width="375" height="1"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="hWH-rb-No5"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1.版本优化" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v31-x8-IlY">
<rect key="frame" x="7" y="56" width="361" height="18.5"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="v31-x8-IlY" firstAttribute="top" secondItem="JXV-Zf-Ztb" secondAttribute="bottom" constant="15" id="26g-Zf-2QA"/>
<constraint firstAttribute="trailing" secondItem="v31-x8-IlY" secondAttribute="trailing" constant="7" id="Ama-ed-0mY"/>
<constraint firstItem="v31-x8-IlY" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="7" id="Fax-Sh-1aI"/>
<constraint firstAttribute="trailing" secondItem="JXV-Zf-Ztb" secondAttribute="trailing" id="e2a-v1-3mo"/>
<constraint firstItem="JXV-Zf-Ztb" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="40" id="oxm-rv-lzY"/>
<constraint firstItem="JXV-Zf-Ztb" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="uZy-ia-fM8"/>
</constraints>
</tableViewCellContentView>
<color key="backgroundColor" red="0.51372549019607838" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="VersionDescLabel" destination="v31-x8-IlY" id="Rfo-xt-BWD"/>
</connections>
<point key="canvasLocation" x="33.5" y="87"/>
</tableViewCell>
</objects>
</document>

View File

@ -0,0 +1,13 @@
//
// AppVersionLogoCell.h
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppVersionLogoCell : UITableViewCell
@end

View File

@ -0,0 +1,24 @@
//
// AppVersionLogoCell.m
// GIGA
//
// Created by lianxiang on 2018/9/18.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "AppVersionLogoCell.h"
@implementation AppVersionLogoCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (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,51 @@
<?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" reuseIdentifier="AppVersionLogoCell" id="KGk-i7-Jjw" customClass="AppVersionLogoCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="173"/>
<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="172.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_logo" translatesAutoresizingMaskIntoConstraints="NO" id="xDN-Vh-dG1">
<rect key="frame" x="114" y="31" width="93" height="93"/>
<constraints>
<constraint firstAttribute="width" constant="93" id="don-g0-ZBG"/>
<constraint firstAttribute="height" constant="93" id="iL4-WJ-Lpa"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="不断进步 只为遇见更好的你" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kg8-oY-HjJ">
<rect key="frame" x="73.5" y="141" width="173" 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>
</subviews>
<constraints>
<constraint firstItem="Kg8-oY-HjJ" firstAttribute="centerX" secondItem="H2p-sc-9uM" secondAttribute="centerX" id="0Qg-Sa-TfY"/>
<constraint firstItem="xDN-Vh-dG1" firstAttribute="centerX" secondItem="H2p-sc-9uM" secondAttribute="centerX" id="Nna-4s-ign"/>
<constraint firstItem="Kg8-oY-HjJ" firstAttribute="top" secondItem="xDN-Vh-dG1" secondAttribute="bottom" constant="17" id="No7-P5-8Wm"/>
<constraint firstItem="xDN-Vh-dG1" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="31" id="hPh-Q6-tZd"/>
</constraints>
</tableViewCellContentView>
<color key="backgroundColor" red="0.51372549020000002" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="calibratedRGB"/>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<point key="canvasLocation" x="34" y="96.5"/>
</tableViewCell>
</objects>
<resources>
<image name="bg_logo" width="88" height="88"/>
</resources>
</document>

View File

@ -25,6 +25,7 @@
}
-(void)loadUserinfoWith:(GiGaUser *)user{
if (user.headImgUrl && ![user.nickName isKindOfClass:[NSNull class]]) {

View File

@ -21,7 +21,8 @@
if(indexPath.row == 0){
self.cachLabe.hidden = NO;
int M = arc4random() % 5;
self.cachLabe.text = [NSString stringWithFormat:@"%dM",M];
}
self.descLabel.text = listArr[indexPath.row];

View File

@ -12,41 +12,50 @@
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="GiGaSettingsViewCell" id="KGk-i7-Jjw" customClass="GiGaSettingsViewCell">
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="GiGaSettingsViewCell" id="KGk-i7-Jjw" customClass="GiGaSettingsViewCell">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<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="341" height="43.5"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ndG-YW-sfk">
<rect key="frame" x="26" y="13" width="30" height="18"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<nil key="textColor"/>
<rect key="frame" x="26" y="12.5" width="29" height="20"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="14"/>
<color key="textColor" red="0.21568627450980393" green="0.21568627450980393" blue="0.21568627450980393" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6PS-Ws-JMW">
<rect key="frame" x="0.0" y="42.5" width="375" height="1"/>
<color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<rect key="frame" x="26" y="43.5" width="316" height="0.5"/>
<color key="backgroundColor" red="0.87058823529411766" green="0.87058823529411766" blue="0.87058823529411766" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="F3E-xB-4EF"/>
<constraint firstAttribute="height" constant="0.5" id="Ycg-7c-nRg"/>
</constraints>
</view>
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="M" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hqP-o2-Ccz">
<rect key="frame" x="265" y="13" width="13" height="18"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<nil key="textColor"/>
<rect key="frame" x="299.5" y="12" width="12.5" height="20"/>
<fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="14"/>
<color key="textColor" red="0.54117647058823526" green="0.54117647058823526" blue="0.54117647058823526" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_indicator_right" translatesAutoresizingMaskIntoConstraints="NO" id="gzd-rx-I7z">
<rect key="frame" x="343" y="16" width="8.5" height="14"/>
<constraints>
<constraint firstAttribute="height" constant="14" id="QAn-L9-64s"/>
<constraint firstAttribute="width" constant="8.5" id="gga-gq-fBD"/>
</constraints>
</imageView>
</subviews>
<constraints>
<constraint firstItem="6PS-Ws-JMW" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="DC4-fn-ot1"/>
<constraint firstAttribute="trailing" secondItem="6PS-Ws-JMW" secondAttribute="trailing" constant="33" id="B2K-iE-76r"/>
<constraint firstItem="ndG-YW-sfk" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="DY1-kd-hRN"/>
<constraint firstAttribute="trailing" secondItem="hqP-o2-Ccz" secondAttribute="trailing" constant="63" id="I7g-q2-S0f"/>
<constraint firstItem="hqP-o2-Ccz" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Qn4-b5-aLv"/>
<constraint firstAttribute="bottom" secondItem="6PS-Ws-JMW" secondAttribute="bottom" id="moN-rN-YYH"/>
<constraint firstItem="6PS-Ws-JMW" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="26" id="S4S-lR-UOV"/>
<constraint firstAttribute="trailing" secondItem="gzd-rx-I7z" secondAttribute="trailing" constant="23.5" id="izn-sF-YEu"/>
<constraint firstAttribute="bottom" secondItem="6PS-Ws-JMW" secondAttribute="bottom" constant="-0.5" id="sdB-pn-hae"/>
<constraint firstItem="ndG-YW-sfk" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="26" id="vW3-CP-kmW"/>
<constraint firstAttribute="trailing" secondItem="6PS-Ws-JMW" secondAttribute="trailing" constant="-34" id="ylJ-U0-g2N"/>
<constraint firstItem="gzd-rx-I7z" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" constant="1.25" id="xjH-gv-hfO"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
@ -57,4 +66,7 @@
<point key="canvasLocation" x="-5.5" y="43"/>
</tableViewCell>
</objects>
<resources>
<image name="user_indicator_right" width="9" height="14"/>
</resources>
</document>

View File

@ -42,6 +42,7 @@
}else{
self.detalTitle.text = [NSString stringWithFormat:@"%@%@%@",user.provinceName,user.cityName,user.areaName];
}
}else if (indexPath.section == 2 && indexPath.row == 3){
self.cityLabel.text = @"职业";
if (user.occupationCode && ![user.occupationCode isKindOfClass:[NSNull class]] && ![user.occupationCode isEqualToString:@""]) {

View File

@ -21,13 +21,6 @@
self.IdLabel.text = user.userId;
self.userTitle.text = @"用户ID";
}else if (indexPath.section == 1 && indexPath.row == 1){
self.userTitle.text = @"昵称";
if (user.nickName && ![user.nickName isKindOfClass:[NSNull class]]) {
self.IdLabel.text = user.nickName;
}else{
self.IdLabel.text = @"昵称";
}
}
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {

View File

@ -11,4 +11,5 @@
@interface GIGaUserInfoAvatorCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIImageView *userAvator;
-(void)loadCellData:(NSIndexPath*)indexPath user:(GiGaUser*)user;
@end

View File

@ -19,7 +19,7 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="132.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_circle_avatar" translatesAutoresizingMaskIntoConstraints="NO" id="L0Q-5Y-jXq">
<imageView contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_circle_avatar" translatesAutoresizingMaskIntoConstraints="NO" id="L0Q-5Y-jXq">
<rect key="frame" x="146" y="15" width="82" height="82"/>
<constraints>
<constraint firstAttribute="width" constant="82" id="IAJ-jV-dpt"/>

View File

@ -9,6 +9,8 @@
#import <UIKit/UIKit.h>
@interface GIGaUserWeChatViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *descTitle;
@property (weak, nonatomic) IBOutlet UITextField *weiXinCount;
-(void)loadCellData:(NSIndexPath*)indexPath user:(GiGaUser*)user;
@end

View File

@ -17,11 +17,23 @@
}
-(void)loadCellData:(NSIndexPath*)indexPath user:(GiGaUser*)user{
if (user.weixin && ![user.weixin isKindOfClass:[NSNull class]]) {
self.weiXinCount.text = user.weixin;
}
if (indexPath.section == 1 && indexPath.row == 1) {
//
self.descTitle.text = @"昵称";
self.weiXinCount.placeholder = @"请输入用户昵称";
if (user.nickName && ![user.nickName isKindOfClass:[NSNull class]] && ![user.nickName isEqualToString:@""]) {
self.weiXinCount.text= user.nickName;
}
}else if (indexPath.section == 1 && indexPath.row == 2){
//
if (user.weixin && ![user.weixin isKindOfClass:[NSNull class]] && ![user.weixin isEqualToString:@""]) {
self.weiXinCount.text = user.weixin;
}
}
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];

View File

@ -20,12 +20,15 @@
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="微信号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="96G-Rk-4QP">
<rect key="frame" x="29" y="11" width="42" height="20"/>
<rect key="frame" x="29" y="4" width="42" height="34"/>
<constraints>
<constraint firstAttribute="height" constant="34" id="7uO-em-FCR"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="14"/>
<color key="textColor" red="0.21568627450980393" green="0.21568627450980393" blue="0.21568627450980393" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="输入微信号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ZiU-cX-tf9">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="输入微信号" textAlignment="natural" minimumFontSize="13" translatesAutoresizingMaskIntoConstraints="NO" id="ZiU-cX-tf9">
<rect key="frame" x="120" y="4" width="241" height="34"/>
<constraints>
<constraint firstAttribute="height" constant="34" id="EQ6-lD-lta"/>
@ -45,6 +48,7 @@
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="descTitle" destination="96G-Rk-4QP" id="Jny-7N-qig"/>
<outlet property="weiXinCount" destination="ZiU-cX-tf9" id="pgd-yd-pSv"/>
</connections>
<point key="canvasLocation" x="-87.5" y="67"/>