add files

This commit is contained in:
lianxiang 2018-09-14 18:04:02 +08:00
parent fada68d22d
commit 9bba78987b
59 changed files with 974 additions and 116 deletions

View File

@ -96,6 +96,16 @@
8384643E214A484400F12B33 /* MaskTestResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 8384643D214A484400F12B33 /* MaskTestResult.m */; };
83846441214A4BFF00F12B33 /* MaskTestResultVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 83846440214A4BFF00F12B33 /* MaskTestResultVC.m */; };
838500DC2137F3F7003514A3 /* GiGaAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 838500DB2137F3F7003514A3 /* GiGaAttributedLabel.m */; };
838762D3214B9D120039D241 /* GIGaUserInfoAvatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 838762D1214B9D120039D241 /* GIGaUserInfoAvatorCell.m */; };
838762D4214B9D120039D241 /* GIGaUserInfoAvatorCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 838762D2214B9D120039D241 /* GIGaUserInfoAvatorCell.xib */; };
838762D8214B9EF80039D241 /* GIGaUserIDViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 838762D6214B9EF80039D241 /* GIGaUserIDViewCell.m */; };
838762D9214B9EF80039D241 /* GIGaUserIDViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 838762D7214B9EF80039D241 /* GIGaUserIDViewCell.xib */; };
838762DD214B9F140039D241 /* GIGaUserWeChatViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 838762DB214B9F140039D241 /* GIGaUserWeChatViewCell.m */; };
838762DE214B9F140039D241 /* GIGaUserWeChatViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 838762DC214B9F140039D241 /* GIGaUserWeChatViewCell.xib */; };
838762E2214B9F580039D241 /* GiGaUserSexViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 838762E0214B9F580039D241 /* GiGaUserSexViewCell.m */; };
838762E3214B9F580039D241 /* GiGaUserSexViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 838762E1214B9F580039D241 /* GiGaUserSexViewCell.xib */; };
838762E7214B9FA60039D241 /* GIGaUserCityViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 838762E5214B9FA60039D241 /* GIGaUserCityViewCell.m */; };
838762E8214B9FA60039D241 /* GIGaUserCityViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 838762E6214B9FA60039D241 /* GIGaUserCityViewCell.xib */; };
83928FFA2134D8F60077D2E8 /* GiGaFlyingCommitInputView.m in Sources */ = {isa = PBXBuildFile; fileRef = 83928FF92134D8F60077D2E8 /* GiGaFlyingCommitInputView.m */; };
83928FFE2134F37D0077D2E8 /* GiGaSocketRocketUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 83928FFD2134F37D0077D2E8 /* GiGaSocketRocketUtility.m */; };
839290052134F4240077D2E8 /* LXDanMuTrackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 839290002134F4230077D2E8 /* LXDanMuTrackView.m */; };
@ -302,6 +312,21 @@
83846440214A4BFF00F12B33 /* MaskTestResultVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MaskTestResultVC.m; sourceTree = "<group>"; };
838500DA2137F3F7003514A3 /* GiGaAttributedLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiGaAttributedLabel.h; sourceTree = "<group>"; };
838500DB2137F3F7003514A3 /* GiGaAttributedLabel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiGaAttributedLabel.m; sourceTree = "<group>"; };
838762D0214B9D120039D241 /* GIGaUserInfoAvatorCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GIGaUserInfoAvatorCell.h; sourceTree = "<group>"; };
838762D1214B9D120039D241 /* GIGaUserInfoAvatorCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GIGaUserInfoAvatorCell.m; sourceTree = "<group>"; };
838762D2214B9D120039D241 /* GIGaUserInfoAvatorCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GIGaUserInfoAvatorCell.xib; sourceTree = "<group>"; };
838762D5214B9EF80039D241 /* GIGaUserIDViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GIGaUserIDViewCell.h; sourceTree = "<group>"; };
838762D6214B9EF80039D241 /* GIGaUserIDViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GIGaUserIDViewCell.m; sourceTree = "<group>"; };
838762D7214B9EF80039D241 /* GIGaUserIDViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GIGaUserIDViewCell.xib; sourceTree = "<group>"; };
838762DA214B9F140039D241 /* GIGaUserWeChatViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GIGaUserWeChatViewCell.h; sourceTree = "<group>"; };
838762DB214B9F140039D241 /* GIGaUserWeChatViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GIGaUserWeChatViewCell.m; sourceTree = "<group>"; };
838762DC214B9F140039D241 /* GIGaUserWeChatViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GIGaUserWeChatViewCell.xib; sourceTree = "<group>"; };
838762DF214B9F580039D241 /* GiGaUserSexViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiGaUserSexViewCell.h; sourceTree = "<group>"; };
838762E0214B9F580039D241 /* GiGaUserSexViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiGaUserSexViewCell.m; sourceTree = "<group>"; };
838762E1214B9F580039D241 /* GiGaUserSexViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GiGaUserSexViewCell.xib; sourceTree = "<group>"; };
838762E4214B9FA60039D241 /* GIGaUserCityViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GIGaUserCityViewCell.h; sourceTree = "<group>"; };
838762E5214B9FA60039D241 /* GIGaUserCityViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GIGaUserCityViewCell.m; sourceTree = "<group>"; };
838762E6214B9FA60039D241 /* GIGaUserCityViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GIGaUserCityViewCell.xib; sourceTree = "<group>"; };
83928FF82134D8F60077D2E8 /* GiGaFlyingCommitInputView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiGaFlyingCommitInputView.h; sourceTree = "<group>"; };
83928FF92134D8F60077D2E8 /* GiGaFlyingCommitInputView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiGaFlyingCommitInputView.m; sourceTree = "<group>"; };
83928FFC2134F37D0077D2E8 /* GiGaSocketRocketUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiGaSocketRocketUtility.h; sourceTree = "<group>"; };
@ -759,6 +784,7 @@
8361B42A212180A100238FEB /* View */ = {
isa = PBXGroup;
children = (
838762CF214B9CAA0039D241 /* userInfoView */,
83BFAE64213CCF10004EF801 /* GiGaMineUserViewCell.h */,
83BFAE65213CCF10004EF801 /* GiGaMineUserViewCell.m */,
83BFAE66213CCF10004EF801 /* GiGaMineUserViewCell.xib */,
@ -953,6 +979,28 @@
path = AlertView;
sourceTree = "<group>";
};
838762CF214B9CAA0039D241 /* userInfoView */ = {
isa = PBXGroup;
children = (
838762D0214B9D120039D241 /* GIGaUserInfoAvatorCell.h */,
838762D1214B9D120039D241 /* GIGaUserInfoAvatorCell.m */,
838762D2214B9D120039D241 /* GIGaUserInfoAvatorCell.xib */,
838762D5214B9EF80039D241 /* GIGaUserIDViewCell.h */,
838762D6214B9EF80039D241 /* GIGaUserIDViewCell.m */,
838762D7214B9EF80039D241 /* GIGaUserIDViewCell.xib */,
838762DA214B9F140039D241 /* GIGaUserWeChatViewCell.h */,
838762DB214B9F140039D241 /* GIGaUserWeChatViewCell.m */,
838762DC214B9F140039D241 /* GIGaUserWeChatViewCell.xib */,
838762DF214B9F580039D241 /* GiGaUserSexViewCell.h */,
838762E0214B9F580039D241 /* GiGaUserSexViewCell.m */,
838762E1214B9F580039D241 /* GiGaUserSexViewCell.xib */,
838762E4214B9FA60039D241 /* GIGaUserCityViewCell.h */,
838762E5214B9FA60039D241 /* GIGaUserCityViewCell.m */,
838762E6214B9FA60039D241 /* GIGaUserCityViewCell.xib */,
);
path = userInfoView;
sourceTree = "<group>";
};
83928FFB2134F37D0077D2E8 /* SocketRocketUtility */ = {
isa = PBXGroup;
children = (
@ -1172,15 +1220,20 @@
buildActionMask = 2147483647;
files = (
83346AC6212BBC8C0054D597 /* GiGaRegistViewController.xib in Resources */,
838762DE214B9F140039D241 /* GIGaUserWeChatViewCell.xib in Resources */,
83BFAE6D213CD0E3004EF801 /* GiGaMineInfoViewCell.xib in Resources */,
8361B3D6212155C300238FEB /* LaunchScreen.storyboard in Resources */,
838762E3214B9F580039D241 /* GiGaUserSexViewCell.xib in Resources */,
838388DA2130046D00D14C53 /* emojizone.mp4 in Resources */,
83A22720212AC8C100B3E75C /* GiGaUserLoginVC.xib in Resources */,
838762D4214B9D120039D241 /* GIGaUserInfoAvatorCell.xib in Resources */,
838388C4212F934400D14C53 /* pomodoSound.m4a in Resources */,
83BFAE78213CDE91004EF801 /* GiGaSettingsViewCell.xib in Resources */,
83346AC1212BB50A0054D597 /* PassWordResetVC.xib in Resources */,
83BDC0592147B89900E74E0D /* GiGaAnswerViewCell.xib in Resources */,
83346AD1212BF5B70054D597 /* useragreement.html in Resources */,
838762D9214B9EF80039D241 /* GIGaUserIDViewCell.xib in Resources */,
838762E8214B9FA60039D241 /* GIGaUserCityViewCell.xib in Resources */,
83BFAE68213CCF10004EF801 /* GiGaMineUserViewCell.xib in Resources */,
8340BFA9213E65CA008F22E4 /* GIGACommonLocalizabe.strings in Resources */,
83835BA8212E4748001480F2 /* MAssaageCenterCell.xib in Resources */,
@ -1293,6 +1346,7 @@
83346AD7212C18F50054D597 /* GiGaAppGaurdVC.m in Sources */,
8349585C212511040064DB6C /* AppDelegate+ThirdParty.m in Sources */,
83BFAE73213CDB58004EF801 /* GiSysSettingsVC.m in Sources */,
838762D8214B9EF80039D241 /* GIGaUserIDViewCell.m in Sources */,
838500DC2137F3F7003514A3 /* GiGaAttributedLabel.m in Sources */,
83BFAE7B213D3F3A004EF801 /* MaskTimeCircularProgressView.m in Sources */,
8314D2112133ABE500B458BF /* WeiIXinApiManager.m in Sources */,
@ -1342,6 +1396,7 @@
8338F6B92142504E00B4780B /* LXCustomSwith.m in Sources */,
8357ADD32123C7C6000816F2 /* GiGaAPIResult.m in Sources */,
8340BF9E213E3846008F22E4 /* SHineLabel.m in Sources */,
838762D3214B9D120039D241 /* GIGaUserInfoAvatorCell.m in Sources */,
8361B4352121836700238FEB /* GiGaBaseNavViewController.m in Sources */,
835060B3212D54C2007E6220 /* GiGaAdDetailViewController.m in Sources */,
83346AC0212BB50A0054D597 /* PassWordResetVC.m in Sources */,
@ -1351,14 +1406,17 @@
83BFAE67213CCF10004EF801 /* GiGaMineUserViewCell.m in Sources */,
8392900C2134F9F80077D2E8 /* GiGaCommentView.m in Sources */,
839290062134F4240077D2E8 /* LXDanMuManager.m in Sources */,
838762E2214B9F580039D241 /* GiGaUserSexViewCell.m in Sources */,
839290052134F4240077D2E8 /* LXDanMuTrackView.m in Sources */,
83E40B2F21218BA0008149C4 /* GiGaUserViewController.m in Sources */,
835060A5212D3536007E6220 /* AppDelegate+GiGaConfig.m in Sources */,
83E40B2B21218B6F008149C4 /* GiGaExercisesViewController.m in Sources */,
838762E7214B9FA60039D241 /* GIGaUserCityViewCell.m in Sources */,
83BFAE77213CDE91004EF801 /* GiGaSettingsViewCell.m in Sources */,
83835BA7212E4748001480F2 /* MAssaageCenterCell.m in Sources */,
836EE5D42136454500F0ABB2 /* RegistGetSMSCodeRequest.m in Sources */,
8361B42E2121812000238FEB /* GiGaServerConfig.m in Sources */,
838762DD214B9F140039D241 /* GIGaUserWeChatViewCell.m in Sources */,
8340BFAF213E739D008F22E4 /* GiGaNoNetWorkView.m in Sources */,
836EE5DA2136716100F0ABB2 /* NSTimer+Convenience.m in Sources */,
83A22712212A9EA900B3E75C /* UIView+Sizes.m in Sources */,

View File

@ -36,6 +36,13 @@
//广
[self creatAdView];
//[self setupTabBarController];
//
BOOL islogin = [GiGaUserDefault isUserLogin];
if (islogin) {
[[GiGaUserManager shareUser] synsisUserInfo:nil];
}
return YES;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 71 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 881 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

View File

@ -24,7 +24,7 @@ static char overlayKey;
{
if (!self.overlay) {
[self setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.overlay = [[UIView alloc] initWithFrame:CGRectMake(0, -PhoneX_STATUBAR_H, [UIScreen mainScreen].bounds.size.width, CGRectGetHeight(self.bounds) + PhoneX_STATUBAR_H)];
self.overlay = [[UIView alloc] initWithFrame:CGRectMake(0, -Phone_STATUBAR_H, [UIScreen mainScreen].bounds.size.width, CGRectGetHeight(self.bounds) + Phone_STATUBAR_H)];
self.overlay.userInteractionEnabled = NO;
self.overlay.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
[self insertSubview:self.overlay atIndex:0];
@ -58,6 +58,7 @@ static char overlayKey;
-(void)setBackgroundImage{
[self setBackgroundImage:[UIImage imageNamed:@"nav_red_moment"] forBarMetrics:UIBarMetricsDefault];
[self setTranslucent:NO];
}

View File

@ -26,12 +26,15 @@
// Do any additional setup after loading the view.
//[self.navigationController.navigationBar cnSetBackgroundColor:GIGARGB(216, 216, 216, 1)];
//[self.navigationController.navigationBar setBarTintColor:GIGA_MAIN_BGCOLOR];
}
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
@ -41,6 +44,7 @@
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController.navigationBar setBackgroundImage];
//[self.navigationController.navigationBar setTranslucent:YES];
}

View File

@ -58,5 +58,12 @@
+(NSString *)convertToJsonData:(NSDictionary *)dict;
+(NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString;
/**
620
@return
*/
+(BOOL)checkPassWord:(NSString *)pass;
@end

View File

@ -230,10 +230,9 @@
}
// 13.2.0 isoLatin1
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
//NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSData *jsonData = [jsonString dataUsingEncoding:NSISOLatin1StringEncoding];
//NSData *jsonData = [jsonString dataUsingEncoding:NSISOLatin1StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
@ -254,4 +253,16 @@
return [NSString stringWithUTF8String:[oldStr cStringUsingEncoding:enc]];
}
+(BOOL)checkPassWord:(NSString *)pass
{
//6-20
NSString *regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$";
NSPredicate * pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([pred evaluateWithObject:pass]) {
return YES ;
}else
return NO;
}
@end

View File

@ -50,6 +50,16 @@
+(void)saveWeiXinaccesstokenInfoWithDic:(NSDictionary *)dic;
+(NSDictionary *)getWeiXinAccessToenDic;
//面膜时间 未登录用户默认16分钟 测试用户对应测试结果
/**
@param time
*/
+(void)savaMaskeTime:(NSTimeInterval)time;
+(NSTimeInterval)getUserMaskeTime;
@end

View File

@ -15,6 +15,8 @@ NSString *const kShowAppGuard = @"ShowAppGuard";
NSString *const kWeiXinSaveToken = @"WeiXinSaveToken";
NSString *const kWeiXinUserInfo = @"WeiXinUserinfo";
NSString *const kGiGaToken = @"GiGatoken";
NSString *const kMaskeTime= @"userMaskeTime";
#define MASKTIME_DEFAULT 20;
@implementation GiGaUserDefault
@ -54,7 +56,9 @@ NSString *const kGiGaToken = @"GiGatoken";
}
+(void)userLogOut{
UD_REMOVE_KEY(kGiGaToken);
UD_REMOVE_KEY(kMaskeTime);
UD_REMOVE_KEY(GIGADEFAULTKEY_USERID);
}
@ -99,6 +103,7 @@ NSString *const kGiGaToken = @"GiGatoken";
+(void)saveWeiXinaccesstokenInfoWithDic:(NSDictionary *)dic
{
[UD_STADARDUD setObject:dic forKey:kWeiXinSaveToken];
[UD_STADARDUD synchronize];
}
+(NSDictionary *)getWeiXinAccessToenDic{
@ -109,6 +114,7 @@ NSString *const kGiGaToken = @"GiGatoken";
+(void)saveWeiXinUserInfoDic:(NSDictionary *)dic
{
[UD_STADARDUD setObject:dic forKey:kWeiXinUserInfo];
[UD_STADARDUD synchronize];
}
+(NSDictionary *)getWeiXinUserInfoDic{
@ -116,5 +122,19 @@ NSString *const kGiGaToken = @"GiGatoken";
return [UD_STADARDUD objectForKey:kWeiXinUserInfo];
}
+(void)savaMaskeTime:(NSTimeInterval)time{
[UD_STADARDUD setDouble:time forKey:kMaskeTime];
[UD_STADARDUD synchronize];
}
+ (NSTimeInterval)getUserMaskeTime{
NSTimeInterval time = [UD_STADARDUD doubleForKey:kMaskeTime];
if (time == 0) {
//time = 16 * 60;
time = MASKTIME_DEFAULT;
}
return time;
}
@end

View File

@ -8,6 +8,10 @@
#import <Foundation/Foundation.h>
#import "GiGaUser.h"
typedef void (^userDataresponseBlock)(GiGaUser *user);
@interface GiGaUserManager : NSObject
@property(nonatomic,strong) GiGaUser *user;
@ -22,4 +26,6 @@
*/
//-(void)detectionUserUpgrade;
-(void)synsisUserInfo:(userDataresponseBlock)block;
@end

View File

@ -9,6 +9,7 @@
#import "GiGaUserManager.h"
#import "YTKKeyValueStore.h"
#import "GiGaUserDefault.h"
#import "GiGaBaseAPiRequest.h"
NSString *const GIGA_USER_TABLE = @"user_table";
const static NSInteger GIGADB_USER_VER = 0;//
@ -47,6 +48,29 @@ const static NSInteger GIGADB_USER_VER = 0;//当前数据库版本号
return self;
}
//
-(void)synsisUserInfo:(userDataresponseBlock)block{
GiGaBaseAPiRequest *requst = [GiGaBaseAPiRequest initWithRequestPath:@"user/v1/info" method:RequestPostMethod parms:nil];
weakify(self);
[requst requstDataWithResult:^(GiGaAPIResult *result) {
if (result.success) {
//
NSDictionary *userDic = result.dic[@"userInfo"];
GiGaUser *user = [[GiGaUser alloc] initWithDictionary:userDic error:nil];
self.user = user;
[weakSelf saveUser:user];
if (block) {
block(user);
}
NSLog(@"user dic ***\n%@",result.dic);
}
}];
}
//
-(void)creatTableByName:(NSString *)tableName{
[_store createTableWithName:tableName];
@ -57,12 +81,12 @@ const static NSInteger GIGADB_USER_VER = 0;//当前数据库版本号
self.user = user;
NSString *userTableId = [NSString stringWithFormat:@"%@",user.userId];
self.userTabId = userTableId;
//
NSDictionary *userDic = [user toDictionary];
[_userArr removeAllObjects];
[_userArr addObject:userDic];
[_store putObject:_userArr withId:userTableId intoTable:GIGA_USER_TABLE];
[GiGaUserDefault saveUserId:userTableId];
@ -86,7 +110,8 @@ const static NSInteger GIGADB_USER_VER = 0;//当前数据库版本号
-(void)loginOut{
self.user = nil;
[GiGaUserDefault removeUserId];
[GiGaUserDefault userLogOut];
}

View File

@ -43,6 +43,10 @@ UD_SYNC
#define kLOCALNotifiID_APPTERMINAL @"GIGALocalNotificationAppTerminal"
//注册成功
#define kUserRegistSucccess @"userRegistSuccess"
//登录成功
#define kUserLoginSuccessNoti @"gigaUserloginSuccess"
//退出登录
#define kUserLogOutNotify @"userLogOutNotify"
//微信登陆授权成功
#define kWeiXinAuthrization_Success @"WXAuthSuccess"
@ -82,11 +86,15 @@ alpha:((float)(rgbValue & 0xFF))/255.0]
//X
//底部工具栏需要为home indicator留出34pt边距
#define PhoneX_BottomMargin ([UIScreen mainScreen].bounds.size.height == 812.0 ? 34.0 :0.0)
#define PhoneX_BottomMargin ([UIScreen mainScreen].bounds.size.height == 44.0 ? 34.0 :0.0)
//状态栏高度由20pt变成44pt导航栏以上变化64->88。
#define PhoneX_TopMargin ([UIScreen mainScreen].bounds.size.height == 812.0 ? 24.0 :0.0)
#define PhoneX_TopMargin ([[UIApplication sharedApplication] statusBarFrame].size.height == 44.0 ? 24.0 :0.0)
// 状态栏高度 所有机型
#define Phone_STATUBAR_H [[UIApplication sharedApplication] statusBarFrame].size.height
//状态栏—➕导航栏
#define SAFE_NAV_HEIGHT ([[UIApplication sharedApplication] statusBarFrame].size.height + self.navigationController.navigationBar.frame.size.height)
#define PhoneX_STATUBAR_H ([UIScreen mainScreen].bounds.size.height == 812.0 ? 44.0 :20.0)
#define GIGA_FONTNAME @"PingFangSC-Medium"
#define GIGA_FONTBOLD @"PingFangSC-Semibold"

View File

@ -22,6 +22,7 @@
#import <UMAnalytics/MobClick.h>
#import "MobClickList.h"
#import "TTTAttributedLabel.h"
#import "GiGaUserManager.h"
#ifdef DEBUG
#define GILog(fmt,...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

View File

@ -52,7 +52,7 @@ static int const showTime = 5;
// [_adView addGestureRecognizer:tap];
CGFloat btnW = 80;
CGFloat btnH = 26;
_countBtn = [[UIButton alloc] initWithFrame:CGRectMake(KMainW - btnW - 24,PhoneX_STATUBAR_H + 10, btnW, btnH)];
_countBtn = [[UIButton alloc] initWithFrame:CGRectMake(KMainW - btnW - 24,Phone_STATUBAR_H + 10, btnW, btnH)];
[_countBtn addTarget:self action:@selector(removeAdView) forControlEvents:UIControlEventTouchUpInside];
// [_countBtn setTitle:[NSString stringWithFormat:@"跳过%d",showTime] forState:UIControlStateNormal];

View File

@ -201,12 +201,14 @@
GIGA_ShowToast(@"请输入验证码");
return;
}
if (!(self.passTexFied.text.length >=6 && self.passTexFied.text.length <=20) || self.passTexFied.text.length == 0) {
GIGA_ShowToast(@"请输入6~20位密码");
BOOL isPass = [GiGaHelper checkPassWord:self.passTexFied.text];
if (isPass == NO) {
GIGA_ShowToast(@"请输入6-20位数字和字母组成的密码");
return;
}
[self regeist:btn];
}
//

View File

@ -18,6 +18,8 @@
#import "GiGaUser.h"
#import "GiGaServerConfig.h"
#import "GIGAMBHUDHelper.h"
#import "GiGaHelper.h"
#import "GiGaUserManager.h"
@interface GiGaUserLoginVC ()
@property (weak, nonatomic) IBOutlet UIImageView *userImagView;
@ -154,7 +156,7 @@
#pragma mark
-(void)loginBtnAction:(UIButton *)btn{
if (self.acountTextField.text == nil) {
if (self.acountTextField.text.length == 0) {
GIGA_ShowToast(@"请输入手机号");
return;
}
@ -163,12 +165,14 @@
return;
}
if (self.passwordTextField.text == nil) {
if (self.passwordTextField.text.length == 0) {
GIGA_ShowToast(@"密码不能为空");
return;
}
if (self.passwordTextField.text.length <= 6) {
GIGA_ShowToast(@"密码长度不能小于六位字符");
BOOL isPass = [GiGaHelper checkPassWord:self.passwordTextField.text];
if (isPass == NO) {
GIGA_ShowToast(@"请输入6-20位数字和字母组成的密码");
return;
}
@ -312,16 +316,18 @@
//token
[GiGaUserDefault saveToken:resDic[@"token"]];
//
[MobClick endEvent:MobClick_UserLogin];
// //123
// [GiGaUserDefault saveUserId:@"123"];
GIGA_WIndowTost(@"登录成功!");
//
[[GiGaUserManager shareUser] synsisUserInfo:^(GiGaUser *user) {
NSLog(@"%@",user.userId);
}];
NC_POST_NAME_OBJECT(kUserLoginSuccessNoti, nil);
[self dismissViewControllerAnimated:YES completion:nil];
}
//
-(void)userRegistSuccsessNoti:(NSNotification *)noti{

View File

@ -79,6 +79,8 @@
GIGA_ShowToast(@"请输入正确手机号");
return;
}
btn.userInteractionEnabled = NO;
[self startTimer:btn];
@ -150,10 +152,15 @@
GIGA_ShowToast(@"请输入新密码");
return;
}
if (!(self.passNewTextField.text.length >= 6 && self.passNewTextField.text.length <= 20)) {
GIGA_ShowToast(@"请输入6~20位新密码");
BOOL isPass = [GiGaHelper checkPassWord:self.passNewTextField.text];
if (isPass == NO) {
GIGA_ShowToast(@"请输入6-20位数字和字母组成的密码");
return;
}
btn.userInteractionEnabled = NO;
[self.view makeToastActivity:CSToastPositionCenter];
NSDictionary *params = @{

View File

@ -1,11 +1,12 @@
<?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" colorMatched="YES">
<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>
@ -25,23 +26,23 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="输入手机号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="gY9-PP-yev">
<rect key="frame" x="65" y="107" width="245" height="51"/>
<rect key="frame" x="65" y="43" width="245" height="51"/>
<constraints>
<constraint firstAttribute="height" constant="51" id="hdC-Ue-b1i"/>
<constraint firstAttribute="height" constant="51" id="odj-rg-9sy"/>
</constraints>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="12"/>
<textInputTraits key="textInputTraits" keyboardType="numberPad"/>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eTv-jk-ONL">
<rect key="frame" x="65" y="159" width="245" height="1"/>
<rect key="frame" x="65" y="95" width="245" height="1"/>
<color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="oPc-M9-lzE"/>
</constraints>
</view>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="短信验证码" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="nCj-Hg-8pQ">
<rect key="frame" x="65" y="162" width="169" height="48"/>
<rect key="frame" x="65" y="98" width="169" height="48"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="bP2-dP-V9B"/>
</constraints>
@ -50,21 +51,21 @@
<textInputTraits key="textInputTraits" keyboardType="numberPad"/>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rno-VM-u1V">
<rect key="frame" x="65" y="214" width="245" height="1"/>
<rect key="frame" x="65" y="150.5" width="245" height="1"/>
<color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="I0I-Rj-P4f"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rm0-UH-T6r">
<rect key="frame" x="65" y="273" width="245" height="1"/>
<rect key="frame" x="65" y="209.5" width="245" height="1"/>
<color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="pu6-ak-TJR"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="w3j-WU-gmW">
<rect key="frame" x="87" y="316" width="200" height="41"/>
<rect key="frame" x="87" y="252.5" width="200" height="41"/>
<color key="backgroundColor" red="0.70980392156862748" green="0.054901960784313725" blue="0.054901960784313725" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="41" id="q8T-c9-PAl"/>
@ -75,7 +76,7 @@
</state>
</button>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="输入新的登录密码" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="MHD-nb-UXj">
<rect key="frame" x="65" y="221" width="245" height="51"/>
<rect key="frame" x="65" y="157.5" width="245" height="51"/>
<constraints>
<constraint firstAttribute="height" constant="51" id="mAg-kT-tQz"/>
</constraints>
@ -84,7 +85,7 @@
<textInputTraits key="textInputTraits" keyboardType="numbersAndPunctuation"/>
</textField>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Dv2-ja-F8y">
<rect key="frame" x="234" y="161" width="76" height="48"/>
<rect key="frame" x="234" y="97" width="76" height="48"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="bin-f7-lIk"/>
<constraint firstAttribute="width" constant="76" id="jyJ-IU-vK2"/>
@ -98,30 +99,31 @@
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="gY9-PP-yev" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="0wd-N9-CJi"/>
<constraint firstItem="eTv-jk-ONL" firstAttribute="top" secondItem="gY9-PP-yev" secondAttribute="bottom" constant="1" id="0jP-EQ-F4h"/>
<constraint firstAttribute="trailing" secondItem="rm0-UH-T6r" secondAttribute="trailing" constant="65" id="3Ze-9p-DXQ"/>
<constraint firstItem="eTv-jk-ONL" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="65" id="3f8-py-rVY"/>
<constraint firstItem="rno-VM-u1V" firstAttribute="top" secondItem="nCj-Hg-8pQ" secondAttribute="bottom" constant="4" id="7B6-yw-Ang"/>
<constraint firstItem="MHD-nb-UXj" firstAttribute="width" secondItem="gY9-PP-yev" secondAttribute="width" id="9Rj-pz-EBS"/>
<constraint firstItem="rno-VM-u1V" firstAttribute="top" secondItem="nCj-Hg-8pQ" secondAttribute="bottom" constant="4.5" id="7B6-yw-Ang"/>
<constraint firstAttribute="trailing" secondItem="eTv-jk-ONL" secondAttribute="trailing" constant="65" id="9mt-NK-XDb"/>
<constraint firstItem="w3j-WU-gmW" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="87" id="Abo-oW-YM4"/>
<constraint firstItem="Dv2-ja-F8y" firstAttribute="leading" secondItem="nCj-Hg-8pQ" secondAttribute="trailing" id="C7G-Au-fA7"/>
<constraint firstItem="eTv-jk-ONL" firstAttribute="top" secondItem="gY9-PP-yev" secondAttribute="bottom" constant="1" id="Esi-VW-e2G"/>
<constraint firstItem="gY9-PP-yev" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="65" id="GjR-Hw-LgY"/>
<constraint firstItem="nCj-Hg-8pQ" firstAttribute="leading" secondItem="gY9-PP-yev" secondAttribute="leading" id="K4P-aZ-p4J"/>
<constraint firstItem="gY9-PP-yev" firstAttribute="top" secondItem="g7Z-wI-UmZ" secondAttribute="top" constant="23" id="GDb-aa-Haf"/>
<constraint firstItem="gY9-PP-yev" firstAttribute="leading" secondItem="g7Z-wI-UmZ" secondAttribute="leading" constant="65" id="LuO-vI-GAH"/>
<constraint firstItem="Dv2-ja-F8y" firstAttribute="top" secondItem="eTv-jk-ONL" secondAttribute="bottom" constant="1" id="NRI-Wc-YKg"/>
<constraint firstItem="rm0-UH-T6r" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="65" id="OKP-bj-u5F"/>
<constraint firstItem="w3j-WU-gmW" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="Qx9-jw-ZFV"/>
<constraint firstItem="eTv-jk-ONL" firstAttribute="trailing" secondItem="Dv2-ja-F8y" secondAttribute="trailing" id="Uii-Q8-GAB"/>
<constraint firstItem="rm0-UH-T6r" firstAttribute="top" secondItem="MHD-nb-UXj" secondAttribute="bottom" constant="1" id="WqS-Ct-q67"/>
<constraint firstItem="MHD-nb-UXj" firstAttribute="width" secondItem="gY9-PP-yev" secondAttribute="width" id="ZqJ-CD-AnS"/>
<constraint firstItem="rno-VM-u1V" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="65" id="aJl-ZC-hPs"/>
<constraint firstItem="Dv2-ja-F8y" firstAttribute="trailing" secondItem="gY9-PP-yev" secondAttribute="trailing" id="bbV-7x-WFt"/>
<constraint firstItem="nCj-Hg-8pQ" firstAttribute="top" secondItem="gY9-PP-yev" secondAttribute="bottom" constant="4" id="gP5-TX-MXq"/>
<constraint firstItem="Dv2-ja-F8y" firstAttribute="centerY" secondItem="nCj-Hg-8pQ" secondAttribute="centerY" constant="-1.5" id="jWN-Se-6P6"/>
<constraint firstItem="Dv2-ja-F8y" firstAttribute="centerY" secondItem="nCj-Hg-8pQ" secondAttribute="centerY" constant="-1" id="jWN-Se-6P6"/>
<constraint firstItem="gY9-PP-yev" firstAttribute="centerX" secondItem="g7Z-wI-UmZ" secondAttribute="centerX" id="mfk-pq-DxW"/>
<constraint firstItem="MHD-nb-UXj" firstAttribute="top" secondItem="rno-VM-u1V" secondAttribute="bottom" constant="6" id="mrM-C1-VFv"/>
<constraint firstItem="gY9-PP-yev" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="107" id="qsl-vw-gFU"/>
<constraint firstItem="w3j-WU-gmW" firstAttribute="top" secondItem="rm0-UH-T6r" secondAttribute="bottom" constant="42" id="sFk-c0-xql"/>
<constraint firstAttribute="trailing" secondItem="rno-VM-u1V" secondAttribute="trailing" constant="65" id="sKR-zI-qG4"/>
<constraint firstItem="eTv-jk-ONL" firstAttribute="leading" secondItem="nCj-Hg-8pQ" secondAttribute="leading" id="vDc-UZ-3fU"/>
<constraint firstItem="MHD-nb-UXj" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="wco-Sk-bTY"/>
</constraints>
<viewLayoutGuide key="safeArea" id="g7Z-wI-UmZ"/>
<point key="canvasLocation" x="33.5" y="53.5"/>
</view>
</objects>

View File

@ -27,12 +27,18 @@
#import "GiGaFlingCommitVC.h"
#import "MaskTimeCircularProgressView.h"
//#import "UINavigationBar+Custom.h"
#import "UIButton+WebCache.h"
#import "GiGaUser.h"
#import "GiGaUserManager.h"
#import "GiGaBaseAPiRequest.h"
@interface GiGaMaskTaskViewController ()<MaskCirCularProGressViewDelegate>
{
AVAudioPlayer *_musicPalyer;
}
@property (nonatomic,strong) UIButton *rightNavUserBtn;
@property(nonatomic,strong)MaskViewBootomWaringView *waringView;
@property(nonatomic,strong) UIImageView *maskImageView;
@property(nonatomic,strong) UIImageView *faceView;
@ -95,13 +101,14 @@
if (!_cicleProgressView) {
_cicleProgressView = [[MaskTimeCircularProgressView alloc] initWithFrame:CGRectMake(100, 251, 125, 125) backColor:GIGARGB(88, 0, 2, 1) progressColor:[UIColor blueColor] lineWidth:10 timeinterval:10];
_cicleProgressView = [[MaskTimeCircularProgressView alloc] initWithFrame:CGRectMake(100, 251 + PhoneX_TopMargin, 125, 125) backColor:GIGARGB(88, 0, 2, 1) progressColor:[UIColor blueColor] lineWidth:10 timeinterval:10];
_cicleProgressView.delegate = self;
_cicleProgressView.hidden = YES;
}
return _cicleProgressView;
}
//
- (UIImageView *)swipeGaurdimagView{
if (!_swipeGaurdimagView) {
@ -149,7 +156,7 @@
#pragma mark
-(void)createInputView{
GiGaFlingCommitVC* GiGaFlingVC = [[GiGaFlingCommitVC alloc] init];
GiGaFlingCommitVC* GiGaFlingVC = [[GiGaFlingCommitVC alloc] init];
if (ISIOS8) {
GiGaFlingVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;
}else{
@ -165,6 +172,7 @@
[super viewWillAppear:animated];
//
[self.navigationController.navigationBar setTranslucent:YES];
}
@ -191,16 +199,16 @@
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
// [self.view addSubview:self.tableView];
// self.tableView.backgroundColor = GIGA_MAIN_BGCOLOR;
[self setUpNav];
[self initUI];
[self addNotify];
[self creatBackGroundMusic];
}
#pragma mark -
#pragma mark
-(void)maskupSwipeGesture{
[self animaMask];
@ -234,6 +242,8 @@
[self.maskImageView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.attachPoint.y - 87);
}];
[self.maskImageView setImage:[UIImage imageNamed:@"masking_img_mask"]];
[self.view layoutIfNeeded];
@ -295,7 +305,6 @@
make.top.mas_equalTo(254 + PhoneX_TopMargin);
}];
//[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
@ -350,7 +359,7 @@
make.top.mas_equalTo(self.view.mas_top).offset(251 + PhoneX_TopMargin);
make.size.mas_equalTo(CGSizeMake(125, 125));
make.centerX.mas_equalTo(self.view.mas_centerX);
}];
//up
@ -416,7 +425,7 @@
[self setBackGroundPlayingInfo];//
// s
NSTimeInterval timeInterVal = 30;
NSTimeInterval timeInterVal = [GiGaUserDefault getUserMaskeTime];
[self.cicleProgressView startWith:timeInterVal];
//
@ -459,7 +468,6 @@
case UIEventSubtypeRemoteControlPause:
// [_musicPalyer pause];
break;
default:
NSLog(@"没有处理过这个事件------receivedEvent.subtype==%ld",(long)receivedEvent.subtype);
break;
@ -475,21 +483,15 @@
AppDelegate *delegate =(AppDelegate *) [[UIApplication sharedApplication] delegate];
delegate.isMasking = NO;
[_musicPalyer stop];
//
[self endMaskAnimation];
}
#pragma mark
-(void)testBtnAcion:(UIButton *)btn{
// BOOL isUserLogin = [GiGaUserDefault isUserLogin];
//
// if (isUserLogin) {
GiGaQuestionVC *questionVC = [[GiGaQuestionVC alloc] init];
[self.navigationController pushViewController:questionVC animated:YES];
GiGaQuestionVC *questionVC = [[GiGaQuestionVC alloc] init];
[self.navigationController pushViewController:questionVC animated:YES];
}
@ -498,6 +500,8 @@
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);
}
#pragma mark 广
@ -523,11 +527,9 @@
}
-(void)dealloc{
NC_REMOVE_NAME(self, USER_GUARD_DISSMISS, nil);
NC_REMOVE_NAME(self, APP_GUARD_DISSMISS, nil);
NC_REMOVE_NAME(self, APP_PUSHTO_DETAILVIEW, nil);
}
#pragma mark
@ -550,7 +552,7 @@
[self presentViewController:gaurdVC animated:YES completion:nil];
}
#pragma mark - setUpNav
#pragma mark -
-(void)setUpNav{
//leftItem
// UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
@ -563,10 +565,39 @@
//rightItem
UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
rightBtn.frame = CGRectMake(0, 0, 40, 40);
//rightBtn.backgroundColor = [UIColor blueColor];
rightBtn.layer.masksToBounds = YES;
rightBtn.layer.cornerRadius = 20;
[rightBtn setImage:[UIImage imageNamed:@"nav_circle_avatar"] forState:UIControlStateNormal];
self.rightNavUserBtn = rightBtn;
[rightBtn addTarget:self action:@selector(rightBtnAction) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
if ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 11.0) {
[self.rightNavUserBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(40, 40));
}];
}
BOOL isUserLogin = [GiGaUserDefault isUserLogin];
if (isUserLogin) {
GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser];
if (user) {
if (user.headImgUrl && ![user.headImgUrl isKindOfClass:[NSNull class]]) {
[self refreshUserIcon:user.headImgUrl];
}
}
}
}
#pragma mark
-(void)refreshUserIcon:(NSString *)imageUrl{
NSURL *url = [NSURL URLWithString:imageUrl];
[self.rightNavUserBtn sd_setImageWithURL:url forState:UIControlStateNormal];
//[self.rightNavUserBtn sd_setBackgroundImageWithURL:url forState:UIControlStateNormal];
}
@ -590,7 +621,6 @@
-(void)rightBtnAction{
BOOL isUserLogin = [GiGaUserDefault isUserLogin];
if (isUserLogin) {
GiGaMeViewController *meVC= [[GiGaMeViewController alloc] init];
[self.navigationController pushViewController:meVC animated:YES];
@ -599,7 +629,6 @@
GiGaBaseNavViewController *baseNav = [[GiGaBaseNavViewController alloc] initWithRootViewController:userlogInVC];
[self presentViewController:baseNav animated:YES completion:nil];
}
}
#pragma mark -bottomView
@ -613,7 +642,6 @@
}
#pragma mark - MaskCirCularProGressViewDelegate
- (void)updateProgressViewWith:(NSTimeInterval)timeInterval{
}
@ -628,5 +656,21 @@
// Dispose of any resources that can be recreated.
}
#pragma mark -
-(void)userLoginNotify{
GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser];
if (user.headImgUrl && ![user.headImgUrl isKindOfClass:[NSNull class]] ) {
[self refreshUserIcon:user.headImgUrl];
}
}
#pragma mark - 退
-(void)userlogOutNotify{
[self.rightNavUserBtn setImage:[UIImage imageNamed:@"nav_circle_avatar"] forState:UIControlStateNormal];
}
@end

View File

@ -49,6 +49,7 @@
_page = 1;
[self loadRequestQuestions];
}
-(NSMutableArray *)questonArray{
@ -69,6 +70,9 @@
-(void)initUI{
//tabview 稿 -64 -88
CGFloat navH = SAFE_NAV_HEIGHT;
UIButton *numberBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[numberBtn setBackgroundImage:[UIImage imageNamed:@"ceshi_number"] forState:UIControlStateNormal];
NSAttributedString *numbertitle = [[NSAttributedString alloc] initWithString:@"1" attributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:18],NSForegroundColorAttributeName:[UIColor whiteColor]}];
@ -95,7 +99,7 @@
[numberBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(31, 31));
make.top.mas_equalTo(self.view.mas_top).offset(112 + PhoneX_TopMargin);
make.top.mas_equalTo(self.view.mas_top).offset(112 -navH);
make.left.mas_equalTo(self.view.mas_left).offset(46);
}];
@ -130,7 +134,7 @@
[self.view addSubview:nextBtn];
[nextBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.view.mas_top).offset(529);
make.top.mas_equalTo(self.view.mas_top).offset(529 -navH);
make.size.mas_equalTo(CGSizeMake(126, 40));
make.left.mas_equalTo(self.view.mas_left).offset(self.view.frame.size.width /2 - 126 /2);
}];
@ -151,7 +155,7 @@
[self.preBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.view.mas_left).offset(69);
make.top.mas_equalTo(self.view.mas_top).offset(529);
make.top.mas_equalTo(self.view.mas_top).offset(529 - navH);
make.size.mas_equalTo(CGSizeMake(97, 40));
}];
@ -199,7 +203,7 @@
}
[self.view layoutIfNeeded];
MaskQuestionView *questionView = [[MaskQuestionView alloc] initQuestionView:CGRectMake(0,248, self.view.frame.size.width,212) style:style titles:titles current:_currentModel];
MaskQuestionView *questionView = [[MaskQuestionView alloc] initQuestionView:CGRectMake(0,248 - SAFE_NAV_HEIGHT, self.view.frame.size.width,212) style:style titles:titles current:_currentModel];
NSLog(@"_currentModel--ID:%d",_currentModel.questionId);
questionView.delegate = self;
[self.view addSubview:questionView];
@ -317,7 +321,7 @@
if (_page > 1) {
self.preBtn.hidden = NO;
[self.nextBtn mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.view.mas_top).offset(529);
make.top.mas_equalTo(self.view.mas_top).offset(529 -SAFE_NAV_HEIGHT);
make.size.mas_equalTo(CGSizeMake(126, 40));
make.left.mas_equalTo(self.view.mas_left).offset(self.view.frame.size.width /2 + 10);
@ -326,7 +330,7 @@
}else{
[self.nextBtn mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.view.mas_top).offset(529);
make.top.mas_equalTo(self.view.mas_top).offset(529 -SAFE_NAV_HEIGHT);
make.size.mas_equalTo(CGSizeMake(126, 40));
make.left.mas_equalTo(self.view.mas_left).offset(self.view.frame.size.width /2 - 126 /2);
}];

View File

@ -37,43 +37,23 @@
self.tableView.estimatedSectionFooterHeight= 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.bounces = NO;
self.tableView.frame = CGRectMake(0, PhoneX_TopMargin + 1, KMainW,KMainH - PhoneX_BottomMargin);
self.tableView.frame = CGRectMake(0,PhoneX_TopMargin + 1, KMainW,KMainH - PhoneX_BottomMargin);
[self loadUserInfo];
}
-(void)loadUserInfo{
GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser];
GiGaUser *currentuser = [[GiGaUserManager shareUser] getCurrentUser];
if (!user) {
[self requstUserinfo];
}else{
self.user = user;
}
}
-(void)requstUserinfo{
GiGaBaseAPiRequest *requst = [GiGaBaseAPiRequest initWithRequestPath:@"user/v1/info" method:RequestPostMethod parms:nil];
[self.view makeToastActivity:CSToastPositionCenter];
weakify(self);
[requst requstDataWithResult:^(GiGaAPIResult *result) {
if (!currentuser) {
[self.view makeToastActivity:CSToastPositionCenter];
[[GiGaUserManager shareUser] synsisUserInfo:^(GiGaUser *user) {
[self.view hideToastActivity];
if (result.success) {
//
NSDictionary *userDic = result.dic[@"userInfo"];
GiGaUser *user = [[GiGaUser alloc] initWithDictionary:userDic error:nil];
weakSelf.user = user;
[[GiGaUserManager shareUser] saveUser:user];
NSIndexSet *set = [NSIndexSet indexSetWithIndex:0];
[self.tableView reloadSections:set withRowAnimation:UITableViewRowAnimationNone];
NSLog(@"user dic ***\n%@",result.dic);
}
}];
self.user = user;
}];
}else{
self.user = currentuser;
}
}

View File

@ -7,6 +7,11 @@
//
#import "GiGaUserViewController.h"
#import "GIGaUserInfoAvatorCell.h"
#import "GIGaUserIDViewCell.h"
#import "GIGaUserWeChatViewCell.h"
#import "GiGaUserSexViewCell.h"
#import "GIGaUserCityViewCell.h"
@interface GiGaUserViewController ()
@ -19,8 +24,129 @@
[super viewDidLoad];
// Do any additional setup after loading the view.
//self.title = @"个人中心";
[self addNavTitile:@"个人中心"];
[self addNavTitile:@"个人信息"];
UIButton *saveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[saveBtn addTarget:self action:@selector(saveUserInfo) forControlEvents:UIControlEventTouchUpInside];
saveBtn.frame = CGRectMake(0, 0,40, 36);
NSAttributedString *attrititle = [GiGaHelper stringWithText:@"保存" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTMEDIUM(16) leterSpace:0];
[saveBtn setAttributedTitle:attrititle forState:UIControlStateNormal];
UIBarButtonItem *saveItem = [[UIBarButtonItem alloc] initWithCustomView:saveBtn];
self.navigationItem.rightBarButtonItem = saveItem;
[self creatTab];
}
-(void)creatTab{
[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.bounces = NO;
self.tableView.frame = CGRectMake(0,PhoneX_TopMargin + 1, KMainW,KMainH - PhoneX_BottomMargin);
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 3;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (section == 0){
return 1;
}else if (section == 1){
return 3;
}
return 4;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if(indexPath.section ==0){
GIGaUserInfoAvatorCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GIGaUserInfoAvatorCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"GIGaUserInfoAvatorCell" owner:self options:nil] lastObject];
}
return cell;
}else if (indexPath.section == 1 && indexPath.row < 2){
GIGaUserIDViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GIGaUserIDViewCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"GIGaUserIDViewCell" owner:self options:nil] lastObject];
}
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];
}
return cell;
}else if (indexPath.section == 2 && indexPath.row == 0){
GiGaUserSexViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GiGaUserSexViewCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"GiGaUserSexViewCell" owner:self options:nil] lastObject];
}
return cell;
}else if (indexPath.section == 2 && indexPath.row >= 1){
GIGaUserCityViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"GIGaUserCityViewCell"];
if(!cell){
cell = [[[NSBundle mainBundle] loadNibNamed:@"GIGaUserCityViewCell" owner:self options:nil] lastObject];
}
return cell;
}
return nil;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if(indexPath.section==0){
return 133;
}else {
return 44;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 0.1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 1){
return 10;
}else if (section == 2){
return 4;
}
return 0.1;
}
-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
if (section == 1 || section == 2) {
UIView *view = [[UIView alloc] init];
view.backgroundColor = GIGARGB(222, 222, 222, 1);
return view;
}
return nil;
}
- (void)didReceiveMemoryWarning {
@ -28,15 +154,11 @@
// Dispose of any resources that can be recreated.
}
#pragma mark -
/*
#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)saveUserInfo{
}
*/
@end

View File

@ -10,6 +10,7 @@
#import "GiGaSettingsViewCell.h"
#import "JXTAlertController.h"
#import "GiGaUserDefault.h"
#import "GiGaUserManager.h"
@interface GiSysSettingsVC ()
@ -121,7 +122,9 @@
}
-(void)userlogOut{
[GiGaUserDefault userLogOut];
[[GiGaUserManager shareUser] loginOut];
NC_POST_NAME_OBJECT(kUserLogOutNotify, nil);
[self.navigationController popToRootViewControllerAnimated:YES];
}

View File

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

View File

@ -0,0 +1,24 @@
//
// GIGaUserCityViewCell.m
// GIGA
//
// Created by lianxiang on 2018/9/14.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "GIGaUserCityViewCell.h"
@implementation GIGaUserCityViewCell
- (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,68 @@
<?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="GIGaUserCityViewCell" id="KGk-i7-Jjw" customClass="GIGaUserCityViewCell">
<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="375" height="43.5"/>
<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="OA0-rJ-5qY">
<rect key="frame" x="29" y="12" width="28" height="20"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="14"/>
<color key="textColor" red="0.2156862745" green="0.2156862745" blue="0.2156862745" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选择生日" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="y6H-zg-4yv">
<rect key="frame" x="120" y="12.5" width="52.5" height="19"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="13"/>
<color key="textColor" red="0.34509803919999998" green="0.34509803919999998" blue="0.34509803919999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kst-pD-CHd">
<rect key="frame" x="25" y="43.5" width="324.5" height="0.5"/>
<color key="backgroundColor" red="0.87058823529999996" green="0.87058823529999996" blue="0.87058823529999996" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="0.5" id="Uus-Ns-JTy"/>
</constraints>
</view>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_indicator_right" translatesAutoresizingMaskIntoConstraints="NO" id="bdq-X4-7Cg">
<rect key="frame" x="349.5" y="15" width="8.5" height="14"/>
<constraints>
<constraint firstAttribute="height" constant="14" id="6JE-kL-tIh"/>
<constraint firstAttribute="width" constant="8.5" id="bRE-sa-cUQ"/>
</constraints>
</imageView>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="Kst-pD-CHd" secondAttribute="trailing" constant="25.5" id="C8S-X7-7Rz"/>
<constraint firstItem="y6H-zg-4yv" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="120" id="DIy-Iq-K1L"/>
<constraint firstAttribute="trailing" secondItem="bdq-X4-7Cg" secondAttribute="trailing" constant="17" id="Fbe-Qg-IBx"/>
<constraint firstItem="Kst-pD-CHd" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="25" id="MHr-ud-Hb1"/>
<constraint firstItem="bdq-X4-7Cg" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" constant="0.25" id="a00-Gq-hFr"/>
<constraint firstAttribute="bottom" secondItem="Kst-pD-CHd" secondAttribute="bottom" constant="-0.5" id="eZ9-17-ap9"/>
<constraint firstItem="OA0-rJ-5qY" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="i9g-Lz-1cw"/>
<constraint firstItem="OA0-rJ-5qY" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="29" id="mRd-S1-39D"/>
<constraint firstItem="y6H-zg-4yv" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="uJ4-iv-cmb"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<point key="canvasLocation" x="33.5" y="68"/>
</tableViewCell>
</objects>
<resources>
<image name="user_indicator_right" width="9" height="14"/>
</resources>
</document>

View File

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

View File

@ -0,0 +1,24 @@
//
// GIGaUserIDViewCell.m
// GIGA
//
// Created by lianxiang on 2018/9/14.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "GIGaUserIDViewCell.h"
@implementation GIGaUserIDViewCell
- (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,56 @@
<?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="GIGaUserIDViewCell" id="KGk-i7-Jjw" customClass="GIGaUserIDViewCell">
<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="375" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="用户ID" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HzQ-bQ-e0n">
<rect key="frame" x="29" y="11" width="42" 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>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123344555" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Oa-fe-SvG">
<rect key="frame" x="120" y="12.5" width="68" height="19"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="13"/>
<color key="textColor" red="0.34509803921568627" green="0.34509803921568627" blue="0.34509803921568627" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jfm-bd-p6y">
<rect key="frame" x="25" y="43.5" width="324.5" height="0.5"/>
<color key="backgroundColor" red="0.87058823529999996" green="0.87058823529999996" blue="0.87058823529999996" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="0.5" id="YID-hl-czK"/>
</constraints>
</view>
</subviews>
<constraints>
<constraint firstItem="4Oa-fe-SvG" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="120" id="0jr-ZC-Wlq"/>
<constraint firstItem="HzQ-bQ-e0n" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="F58-gR-xKI"/>
<constraint firstItem="HzQ-bQ-e0n" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="29" id="J1t-bO-G6L"/>
<constraint firstItem="4Oa-fe-SvG" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="dm8-pf-orr"/>
<constraint firstAttribute="trailing" secondItem="jfm-bd-p6y" secondAttribute="trailing" constant="25.5" id="iLR-ky-qmP"/>
<constraint firstItem="jfm-bd-p6y" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="25" id="oFi-j8-zxh"/>
<constraint firstAttribute="bottom" secondItem="jfm-bd-p6y" secondAttribute="bottom" constant="-0.5" id="xz1-B6-c0m"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<point key="canvasLocation" x="33.5" y="68"/>
</tableViewCell>
</objects>
</document>

View File

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

View File

@ -0,0 +1,24 @@
//
// GIGaUserInfoAvatorCell.m
// GIGA
//
// Created by lianxiang on 2018/9/14.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "GIGaUserInfoAvatorCell.h"
@implementation GIGaUserInfoAvatorCell
- (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,52 @@
<?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="GIGaUserInfoAvatorCell" id="KGk-i7-Jjw" customClass="GIGaUserInfoAvatorCell">
<rect key="frame" x="0.0" y="0.0" width="375" height="133"/>
<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="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">
<rect key="frame" x="146" y="15" width="82" height="82"/>
<constraints>
<constraint firstAttribute="width" constant="82" id="IAJ-jV-dpt"/>
<constraint firstAttribute="height" constant="82" id="ipN-ci-Ha3"/>
</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="bZT-xd-Nax">
<rect key="frame" x="16" y="106" width="343" height="16"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="11"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="bZT-xd-Nax" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="A4P-rM-u2R"/>
<constraint firstItem="bZT-xd-Nax" firstAttribute="centerX" secondItem="H2p-sc-9uM" secondAttribute="centerX" id="RAl-8x-aSg"/>
<constraint firstItem="L0Q-5Y-jXq" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="15" id="Z25-oO-34K"/>
<constraint firstItem="L0Q-5Y-jXq" firstAttribute="centerX" secondItem="H2p-sc-9uM" secondAttribute="centerX" id="fqG-6F-6sY"/>
<constraint firstItem="bZT-xd-Nax" firstAttribute="top" secondItem="L0Q-5Y-jXq" secondAttribute="bottom" constant="9" id="zFo-b6-ABK"/>
</constraints>
</tableViewCellContentView>
<color key="backgroundColor" red="0.51372549020000002" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<point key="canvasLocation" x="9.5" y="62.5"/>
</tableViewCell>
</objects>
<resources>
<image name="img_circle_avatar" width="114" height="114"/>
</resources>
</document>

View File

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

View File

@ -0,0 +1,25 @@
//
// GIGaUserWeChatViewCell.m
// GIGA
//
// Created by lianxiang on 2018/9/14.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "GIGaUserWeChatViewCell.h"
@implementation GIGaUserWeChatViewCell
- (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,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="GIGaUserWeChatViewCell" id="KGk-i7-Jjw" customClass="GIGaUserWeChatViewCell">
<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="375" height="43.5"/>
<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"/>
<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">
<rect key="frame" x="120" y="4" width="241" height="34"/>
<constraints>
<constraint firstAttribute="height" constant="34" id="EQ6-lD-lta"/>
</constraints>
<color key="textColor" red="0.34509803919999998" green="0.34509803919999998" blue="0.34509803919999998" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="13"/>
<textInputTraits key="textInputTraits"/>
</textField>
</subviews>
<constraints>
<constraint firstItem="ZiU-cX-tf9" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="CAa-I5-ohs"/>
<constraint firstItem="96G-Rk-4QP" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="29" id="eDQ-I2-ePA"/>
<constraint firstItem="ZiU-cX-tf9" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="120" id="edd-QI-enH"/>
<constraint firstItem="96G-Rk-4QP" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="f7e-nm-2FR"/>
<constraint firstAttribute="trailing" secondItem="ZiU-cX-tf9" secondAttribute="trailing" constant="14" id="zF4-Al-MXL"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="weiXinCount" destination="ZiU-cX-tf9" id="pgd-yd-pSv"/>
</connections>
<point key="canvasLocation" x="-87.5" y="67"/>
</tableViewCell>
</objects>
</document>

View File

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

View File

@ -0,0 +1,24 @@
//
// GiGaUserSexViewCell.m
// GIGA
//
// Created by lianxiang on 2018/9/14.
// Copyright © 2018 com.giga.ios. All rights reserved.
//
#import "GiGaUserSexViewCell.h"
@implementation GiGaUserSexViewCell
- (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,86 @@
<?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="GiGaUserSexViewCell" id="KGk-i7-Jjw" customClass="GiGaUserSexViewCell">
<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="375" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1b5-Ch-YB1">
<rect key="frame" x="76" y="0.0" width="106" height="44"/>
<constraints>
<constraint firstAttribute="width" constant="106" id="vwg-K2-GPw"/>
<constraint firstAttribute="height" constant="44" id="w70-FB-xEb"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="13"/>
<inset key="titleEdgeInsets" minX="19" minY="0.0" maxX="0.0" maxY="0.0"/>
<inset key="imageEdgeInsets" minX="13" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="女" image="sex_selected">
<color key="titleColor" red="0.34509803919999998" green="0.34509803919999998" blue="0.34509803919999998" alpha="1" colorSpace="calibratedRGB"/>
</state>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="性别" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ofO-JV-PX4">
<rect key="frame" x="29" y="12" width="28" height="20"/>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="14"/>
<color key="textColor" red="0.2156862745" green="0.2156862745" blue="0.2156862745" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yUE-mb-GBH">
<rect key="frame" x="25" y="43.5" width="324.5" height="0.5"/>
<color key="backgroundColor" red="0.87058823529411766" green="0.87058823529411766" blue="0.87058823529411766" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="0.5" id="Dez-Tc-Mdf"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DdT-OD-I8H">
<rect key="frame" x="185" y="0.0" width="109" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="5cm-Dh-LOR"/>
<constraint firstAttribute="width" constant="109" id="h4H-c3-2x2"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Medium" family="PingFang SC" pointSize="13"/>
<inset key="titleEdgeInsets" minX="-60" minY="0.0" maxX="0.0" maxY="0.0"/>
<inset key="imageEdgeInsets" minX="-65" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="男" image="sex_disselect">
<color key="titleColor" red="0.34509803919999998" green="0.34509803919999998" blue="0.34509803919999998" alpha="1" colorSpace="calibratedRGB"/>
</state>
</button>
</subviews>
<constraints>
<constraint firstItem="DdT-OD-I8H" firstAttribute="leading" secondItem="1b5-Ch-YB1" secondAttribute="trailing" constant="3" id="GeC-WC-aBx"/>
<constraint firstItem="1b5-Ch-YB1" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="76" id="Lim-j1-EZJ"/>
<constraint firstItem="DdT-OD-I8H" firstAttribute="centerY" secondItem="1b5-Ch-YB1" secondAttribute="centerY" id="Ocb-lm-QyT"/>
<constraint firstAttribute="trailing" secondItem="yUE-mb-GBH" secondAttribute="trailing" constant="25.5" id="Oeo-Vt-h7O"/>
<constraint firstItem="ofO-JV-PX4" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="29" id="gxQ-oB-E14"/>
<constraint firstItem="1b5-Ch-YB1" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" constant="0.25" id="m7I-BO-n6j"/>
<constraint firstItem="ofO-JV-PX4" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="p4O-0k-95J"/>
<constraint firstItem="yUE-mb-GBH" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="25" id="v71-aX-Fuk"/>
<constraint firstAttribute="bottom" secondItem="yUE-mb-GBH" secondAttribute="bottom" constant="-0.5" id="xkG-Sc-n0C"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="usefemale" destination="1b5-Ch-YB1" id="uw1-yV-C4u"/>
<outlet property="usermale" destination="DdT-OD-I8H" id="3Mx-BD-lAG"/>
</connections>
<point key="canvasLocation" x="33.5" y="68"/>
</tableViewCell>
</objects>
<resources>
<image name="sex_disselect" width="16" height="16"/>
<image name="sex_selected" width="16" height="16"/>
</resources>
</document>