773 lines
35 KiB
Objective-C
773 lines
35 KiB
Objective-C
//
|
||
// MineViewController.m
|
||
// TreeHole
|
||
//
|
||
// Created by 郑创权 on 2022/11/13.
|
||
//
|
||
|
||
#import "MineViewController.h"
|
||
#import "BigUserImgAlertView.h"
|
||
#import "ProfileCardViewController.h" //个人页面
|
||
#import "UserListViewController.h" //列表
|
||
#import "AlertInputView.h"
|
||
#import "InviteCodeViewController.h"//邀请页面
|
||
#import "SettingsViewController.h"//设置页面
|
||
#import "FeedbackViewController.h"//意见反馈
|
||
#import "TZImagePickerController+MTImagePicker.h"
|
||
#import "THMineHeaderView.h"
|
||
#import "THMineTypeNavView.h"
|
||
#import "ProfilePhotoCell.h"
|
||
#import "MTActionSheet.h"
|
||
#import "VIPCardInfo.h"
|
||
|
||
static NSString * const DidActionScoreKey = @"DidActionScoreKey";
|
||
static NSString * const DidActionFollowPublicAccountKey = @"DidActionFollowPublicAccountKey";
|
||
|
||
@interface MineViewController ()<UICollectionViewDataSource, UICollectionViewDelegate, KSPhotoBrowserDelegate>
|
||
@property (nonatomic, strong)User* userModel;//个人信息
|
||
@property (nonatomic, strong)UIView* userView;
|
||
@property (nonatomic, strong)UIView* nianVipView;
|
||
@property (nonatomic, strong)UILabel* nianVipLab;
|
||
@property (nonatomic, strong) UIView *emptyTipsView;
|
||
|
||
@property (nonatomic, strong) UICollectionView *collectionView;
|
||
@property (nonatomic, strong) UISwitch* nearSwitch;
|
||
|
||
@property (nonatomic, strong)UIButton* openVipBtn;
|
||
@property (nonatomic, strong)UILabel* openVipLab;
|
||
@property (nonatomic, strong)UIView* contentTableView;
|
||
|
||
@property (nonatomic,strong) NSMutableArray *infoArray;
|
||
|
||
@property (nonatomic, strong) NSMutableArray<ProfilePhoto *> *photosM;
|
||
@property (nonatomic,strong) NSString *statusStr;
|
||
|
||
@property (nonatomic, strong) MTActionSheet *moreSheet;
|
||
@property (nonatomic, strong) MTActionSheet *photoSheet;
|
||
@property (nonatomic, strong) ProfilePhoto *actionSheetPhoto;
|
||
@property (nonatomic, strong) KSPhotoBrowser *browser;
|
||
@end
|
||
|
||
@implementation MineViewController
|
||
|
||
-(NSMutableArray *)infoArray
|
||
{
|
||
if (!_infoArray) {
|
||
_infoArray = [NSMutableArray array];
|
||
}
|
||
return _infoArray;
|
||
}
|
||
|
||
- (void)viewWillAppear:(BOOL)animated{
|
||
[super viewWillAppear:animated];
|
||
if (_userModel.isVIP) {
|
||
[_openVipBtn setBackgroundImage:[UIImage imageNamed:@"TH_pro_vip_card_content_S"] forState:UIControlStateNormal];
|
||
_nianVipView.hidden = NO;
|
||
_openVipLab.hidden = NO;
|
||
if([UserService currentUser].vip_kind == 10){
|
||
_nianVipLab.text = @"年VIP";
|
||
}else{
|
||
_nianVipLab.text = @"VIP";
|
||
}
|
||
|
||
}else{
|
||
_nianVipView.hidden = YES;
|
||
|
||
}
|
||
|
||
|
||
[UserService getUserInfoWithCompletion:^(User * _Nonnull user) {
|
||
[self getUserstatData];
|
||
// [self getNoticeCount];
|
||
// [self loadPhotosData];
|
||
[self refreshVIPInfo];
|
||
|
||
}];
|
||
|
||
[self geRstatData];
|
||
|
||
self.navigationController.navigationBar.hidden = true;
|
||
|
||
}
|
||
|
||
- (void)viewWillDisappear:(BOOL)animated {
|
||
[super viewWillDisappear:animated];
|
||
self.navigationController.navigationBar.hidden = false;
|
||
|
||
}
|
||
|
||
|
||
|
||
- (void)geRstatData {
|
||
[PYHTTPManager getWithPath:@"userstat" params:nil callback:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (error == nil) {
|
||
self.statusStr = [NSString stringWithFormat:@"%@",rsp[@"is_hide"]];
|
||
if (self.nearSwitch != nil) {
|
||
self.nearSwitch.on = self.statusStr.intValue == 1;
|
||
}
|
||
|
||
}}];
|
||
}
|
||
|
||
- (void)getUserstatData {
|
||
[PYHTTPManager getWithPath:@"userstat" params:nil callback:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (error == nil) {
|
||
self.statusStr = [NSString stringWithFormat:@"%@",rsp[@"is_hide"]];
|
||
if (self.nearSwitch != nil) {
|
||
self.nearSwitch.on = self.statusStr.intValue == 1;
|
||
}
|
||
[self getNoticeCount];
|
||
|
||
// [self reloadData];
|
||
}
|
||
}];
|
||
}
|
||
|
||
- (void)refreshVIPInfo {
|
||
[PYHTTPManager postWithPath:@"myvipcard" params:nil callback:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
|
||
VIPCardInfo *info = [VIPCardInfo mj_objectWithKeyValues:rsp];
|
||
|
||
if (info.vipcard.vip_exp_date.length > 0) {
|
||
self.openVipLab.text = info.vipcard.vip_exp_date;
|
||
}
|
||
|
||
}];
|
||
|
||
}
|
||
|
||
- (void)loadPhotosData {
|
||
[UserService getUserPhotosWithUserID:[UserService currentUserID] completion:^(NSArray<ProfilePhoto *> * _Nonnull photos) {
|
||
self.photosM = [photos mutableCopy];
|
||
if (self.photosM.count == 0) {
|
||
self.emptyTipsView.hidden = false;
|
||
self.collectionView.hidden = true;
|
||
self.contentScrollView.contentSize = CGSizeMake(SCREEN_WIDTH,TAB_BAR_HEIGHT + self.emptyTipsView.qmui_bottom + 30);
|
||
} else {
|
||
self.emptyTipsView.hidden = true;
|
||
self.collectionView.hidden = false;
|
||
self.contentScrollView.contentSize = CGSizeMake(SCREEN_WIDTH,TAB_BAR_HEIGHT + self.collectionView.qmui_bottom);
|
||
[self.collectionView reloadData];
|
||
}
|
||
|
||
}];
|
||
}
|
||
|
||
- (void)upLoadAction {
|
||
if(self.photosM.count >= 9){
|
||
[SVProgressHUD showErrorWithStatus:@"为了让形象照质量更高,目前只允许上传9张~"];
|
||
return;
|
||
}
|
||
TZImagePickerController *picker = [TZImagePickerController mt_imagePickerWithMaxImagesCount:9 - self.photosM.count didFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
|
||
dispatch_async(dispatch_get_main_queue(), ^{
|
||
[SVProgressHUD showWithStatus:nil];
|
||
});
|
||
[UserService uploadUserPhotoWithImages:photos completion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (error) {
|
||
[SVProgressHUD showErrorWithStatus:@"上传失败,请稍后重试"];
|
||
} else {
|
||
[SVProgressHUD dismiss];
|
||
[self loadPhotosData];
|
||
}
|
||
}];
|
||
}];
|
||
[self.navigationController presentViewController:picker animated:YES completion:nil];
|
||
}
|
||
|
||
-(void)getNoticeCount
|
||
{
|
||
_userModel = [UserService currentUser];
|
||
|
||
for (UIView *view in self.contentScrollView.subviews) {
|
||
[view removeFromSuperview];
|
||
}
|
||
|
||
_userView= [[UIView alloc]initWithFrame:CGRectMake(0, STATUS_BAR_HEIGHT + FIX_SIZE(12), SCREEN_WIDTH, FIX_SIZE(98))];
|
||
[self.contentScrollView addSubview:self.userView];
|
||
|
||
// NSArray * xibArray = [[NSBundle mainBundle]loadNibNamed:NSStringFromClass(THMineHeaderView.class) owner:nil options:nil] ;
|
||
//
|
||
// THMineHeaderView *headerView = xibArray.firstObject;
|
||
// headerView.frame = CGRectMake(0, 0, SCREEN_WIDTH, 30);
|
||
//
|
||
// [_userView addSubview:headerView];
|
||
|
||
|
||
UIImageView* userImgV = [[UIImageView alloc]initWithFrame:CGRectMake(FIX_SIZE(20), FIX_SIZE(10), FIX_SIZE(68), FIX_SIZE(68))];
|
||
userImgV.contentMode = UIViewContentModeScaleToFill;
|
||
userImgV.layer.cornerRadius = userImgV.width/2.0;
|
||
userImgV.layer.masksToBounds = YES;
|
||
userImgV.tag = 800001;
|
||
[userImgV sd_setImageWithURL:[NSURL URLWithString:_userModel.avatar] placeholderImage:[UIImage imageNamed:@"TH_defalut_avatar"]];
|
||
userImgV.userInteractionEnabled = YES;
|
||
[userImgV addTapGestureTarget:self action:@selector(userImgVAlertClick:)];
|
||
|
||
[_userView addSubview:userImgV];
|
||
|
||
UILabel* userNameLab = [[UILabel alloc]initWithFrame:CGRectMake(userImgV.right + FIX_SIZE(15), userImgV.y + FIX_SIZE(6), FIX_SIZE(120), FIX_SIZE(20))];
|
||
userNameLab.text = _userModel.nickname;
|
||
userNameLab.textAlignment = NSTextAlignmentLeft;
|
||
userNameLab.font = MT_FONT_MEDIUM_SIZE(16);
|
||
userNameLab.textColor = HEX_COLOR(0xFFFFFF);
|
||
[_userView addSubview:userNameLab];
|
||
|
||
UIImageView* userSexImgv = [[UIImageView alloc]initWithFrame:CGRectMake(userNameLab.left, userNameLab.bottom + FIX_SIZE(16), FIX_SIZE(26), FIX_SIZE(16))];
|
||
if([_userModel.gender_str isEqualToString:@"CD"]){
|
||
userSexImgv.image = [UIImage imageNamed:@"TH_cd_tag"];
|
||
}else if([_userModel.gender_str isEqualToString:@"TS"]){
|
||
userSexImgv.image = [UIImage imageNamed:@"TH_ts_tag"];
|
||
}else{
|
||
userSexImgv.image = [UIImage imageNamed:@"TH_zn_tag"];
|
||
}
|
||
userSexImgv.contentMode = UIViewContentModeScaleToFill;
|
||
[_userView addSubview:userSexImgv];
|
||
|
||
if (_userModel.isVIP) {
|
||
userNameLab.textColor = COLOR_WITH_RGB(0xF8D07D);
|
||
// UIImageView* vipImgV = [[UIImageView alloc]initWithFrame:CGRectMake(userSexImgv.right + FIX_SIZE(5), userSexImgv.y, FIX_SIZE(16), FIX_SIZE(16))];
|
||
// vipImgV.image = [UIImage imageNamed:@"vip_tag"];
|
||
// vipImgV.contentMode = UIViewContentModeScaleToFill;
|
||
// [_userView addSubview:vipImgV];
|
||
UIView* nianVipView = [[UIView alloc]initWithFrame:CGRectMake(userSexImgv.right + FIX_SIZE(5), userSexImgv.y + (userSexImgv.height - FIX_SIZE(16))/2.0, 34, FIX_SIZE(16))];
|
||
nianVipView.layer.cornerRadius = 8;
|
||
nianVipView.layer.masksToBounds = YES;
|
||
// gradient
|
||
CAGradientLayer *gl = [CAGradientLayer layer];
|
||
gl.frame = CGRectMake(0,0,nianVipView.width,nianVipView.height);
|
||
gl.startPoint = CGPointMake(0, 0.5);
|
||
gl.endPoint = CGPointMake(1, 0.5);
|
||
gl.colors = @[(__bridge id)HEX_COLOR(0xE4B18B).CGColor, (__bridge id)HEX_COLOR(0xFFF4EC).CGColor, (__bridge id)HEX_COLOR(0xE4B18B).CGColor];
|
||
gl.locations = @[@(0), @(0.5f), @(1.0f)];
|
||
[nianVipView.layer addSublayer:gl];
|
||
UILabel* nianVipLab = [[UILabel alloc]initWithFrame:nianVipView.bounds];
|
||
if([UserService currentUser].vip_kind == 10){
|
||
nianVipLab.text = @"年VIP";
|
||
}else{
|
||
nianVipLab.text = @"VIP";
|
||
}
|
||
nianVipLab.textColor = HEX_COLOR(0x000000);
|
||
nianVipLab.textAlignment = NSTextAlignmentCenter;
|
||
nianVipLab.font = MT_FONT_MEDIUM_SIZE(10);
|
||
[nianVipView addSubview:nianVipLab];
|
||
// [nianVipLab bringSubviewToFront:nianVipLab.text];
|
||
[_userView addSubview:nianVipView];
|
||
_nianVipView = nianVipView;
|
||
_nianVipLab = nianVipLab;
|
||
}else{
|
||
userNameLab.textColor = COLOR_WITH_RGB_A(0xFFFFFF, 0.9);
|
||
}
|
||
|
||
UIButton* pushPersonalPageBtn = [[UIButton alloc]initWithFrame:CGRectMake(_userView.width - FIX_SIZE(70) - FIX_SIZE(12), userNameLab.y + FIX_SIZE(12), FIX_SIZE(70), FIX_SIZE(24))];
|
||
[pushPersonalPageBtn addTarget:self action:@selector(pushPersonalPageBtnClick:) forControlEvents:UIControlEventTouchUpInside];
|
||
[_userView addSubview:pushPersonalPageBtn];
|
||
|
||
UILabel* pushPersonalPageBtnTitleLab = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, FIX_SIZE(54), FIX_SIZE(24))];
|
||
pushPersonalPageBtnTitleLab.text = @"进入主页";
|
||
pushPersonalPageBtnTitleLab.textAlignment = NSTextAlignmentLeft;
|
||
pushPersonalPageBtnTitleLab.font = MT_FONT_MEDIUM_SIZE(12);
|
||
pushPersonalPageBtnTitleLab.textColor = HEX_COLOR(0xFFFFFF);
|
||
[pushPersonalPageBtn addSubview:pushPersonalPageBtnTitleLab];
|
||
UIImageView* pushPersonRightArrowImgV = [[UIImageView alloc]initWithFrame:CGRectMake(pushPersonalPageBtnTitleLab.right , 0, FIX_SIZE(24), FIX_SIZE(24))];
|
||
pushPersonRightArrowImgV.image = [UIImage imageNamed:@"TH_pro_right_arrow_white"];
|
||
pushPersonRightArrowImgV.contentMode = UIViewContentModeScaleToFill;
|
||
[pushPersonalPageBtn addSubview:pushPersonRightArrowImgV];
|
||
|
||
NSLog(@"getNoticeCount==%@",self.infoArray);
|
||
|
||
//互关,关注,粉丝
|
||
// userModel.friend_count
|
||
// add_friend_count
|
||
// add_user_followed_count
|
||
// add_followed_user_count
|
||
// NSArray* functionArray = @[@{@"num":@(_userModel.friend_count),@"title":@"互关"},
|
||
// @{@"num":@(_userModel.user_followed_count),@"title":@"关注"},
|
||
// @{@"num":@(_userModel.followed_user_count),@"title":@"粉丝"}];
|
||
//
|
||
// UIView* functionView = [[UIView alloc]initWithFrame:CGRectMake(0, userImgV.bottom, SCREEN_WIDTH, _userView.height - userImgV.bottom)];
|
||
//// functionView.backgroundColor = [UIColor whiteColor];
|
||
// [_userView addSubview:functionView];
|
||
|
||
// CGFloat functionBtnW = FIX_SIZE(120);
|
||
// CGFloat functionBtnH = functionView.height;
|
||
// CGFloat functionBtnJianGe = (SCREEN_WIDTH - FIX_SIZE(40) - functionBtnW*functionArray.count)/(functionArray.count-1);
|
||
// for (NSInteger i = 0 ; i < functionArray.count; i++) {
|
||
// UIButton* functionBtn = [[UIButton alloc]initWithFrame:CGRectMake(FIX_SIZE(20) + (functionBtnJianGe + functionBtnW)*i, 0, functionBtnW, functionBtnH)];
|
||
// [functionBtn setTitle:functionArray[i][@"title"] forState:UIControlStateNormal];
|
||
// [functionBtn setTitleColor:HEX_COLOR_A(0x000000, 0) forState:UIControlStateNormal];
|
||
// [functionBtn addTarget:self action:@selector(functionBtnClick:) forControlEvents:UIControlEventTouchUpInside];
|
||
// [functionView addSubview:functionBtn];
|
||
//
|
||
// UILabel* functionBtnNumLab = [[UILabel alloc]initWithFrame:CGRectMake(-2, FIX_SIZE(26), functionBtn.width-3, FIX_SIZE(20))];
|
||
// functionBtnNumLab.text = [NSString stringWithFormat:@"%@",functionArray[i][@"num"]];
|
||
// functionBtnNumLab.textAlignment = NSTextAlignmentCenter;
|
||
// functionBtnNumLab.font = MT_FONT_MEDIUM_SIZE(18);
|
||
// functionBtnNumLab.textColor = HEX_COLOR_A(0xFFFFFF, 0.7);
|
||
// functionBtnNumLab.textAlignment = NSTextAlignmentCenter;
|
||
// [functionBtn addSubview:functionBtnNumLab];
|
||
//
|
||
//
|
||
// UILabel*NumLab = [[UILabel alloc]initWithFrame:CGRectMake(functionBtn.frame.size.width-FIX_SIZE(55), FIX_SIZE(26), 26, FIX_SIZE(20))];
|
||
//
|
||
// NumLab.textAlignment = NSTextAlignmentRight;
|
||
// NumLab.font = MT_FONT_MEDIUM_SIZE(14);
|
||
// NumLab.textColor = HEX_COLOR_A(0xFFFFFF, 0.7);
|
||
// NumLab.textAlignment = NSTextAlignmentCenter;
|
||
// [functionBtn addSubview:NumLab];
|
||
//
|
||
// NumLab.backgroundColor = [UIColor redColor];
|
||
// NumLab.layer.cornerRadius = FIX_SIZE(10);
|
||
// NumLab.layer.masksToBounds = YES;
|
||
//
|
||
// NSLog(@"_userModel.new_friend_count==%d",_userModel
|
||
// .new_friend_count);
|
||
// if (i==0) {
|
||
// if (_userModel.new_friend_count>=99) {
|
||
// NumLab.text = @"99+";
|
||
// }else{
|
||
//
|
||
// if (_userModel.new_friend_count==0) {
|
||
// NumLab.hidden = YES;
|
||
// }else{
|
||
// NumLab.text = [NSString stringWithFormat:@"%d",_userModel.new_friend_count];
|
||
// }
|
||
// }
|
||
//
|
||
// }else if (i==1)
|
||
// {
|
||
// if (_userModel.new_followed_user_count>=99) {
|
||
// NumLab.text = @"99+";
|
||
// }else{
|
||
// if (_userModel.new_followed_user_count==0) {
|
||
// NumLab.hidden = YES;
|
||
// }else{
|
||
// NumLab.text = [NSString stringWithFormat:@"%d",_userModel.new_followed_user_count];
|
||
// }
|
||
// }
|
||
//
|
||
//
|
||
// }else{
|
||
// if (_userModel.new_user_followed_count>=99) {
|
||
// NumLab.text = @"99+";
|
||
// }else{
|
||
// if (_userModel.new_user_followed_count==0) {
|
||
// NumLab.hidden = YES;
|
||
// }else{
|
||
// NumLab.text = [NSString stringWithFormat:@"%d",_userModel.new_user_followed_count];
|
||
// }
|
||
// }
|
||
// }
|
||
//
|
||
//// [NumLab sizeToFit];
|
||
//
|
||
// UILabel* functionBtnTitleLab = [[UILabel alloc]initWithFrame:CGRectMake(0, functionBtnNumLab.bottom + FIX_SIZE(9), functionBtn.width, FIX_SIZE(26))];
|
||
// functionBtnTitleLab.text = functionArray[i][@"title"];
|
||
// functionBtnTitleLab.textAlignment = NSTextAlignmentCenter;
|
||
// functionBtnTitleLab.font = MT_FONT_MEDIUM_SIZE(18);
|
||
// functionBtnTitleLab.textColor = HEX_COLOR_A(0xFFFFFF, 0.7);
|
||
// [functionBtn addSubview:functionBtnTitleLab];
|
||
//
|
||
// }
|
||
|
||
[self.contentScrollView addSubview:self.openVipBtn];
|
||
|
||
|
||
// NSArray * newxibArray = [[NSBundle mainBundle]loadNibNamed:NSStringFromClass(THMineTypeNavView.class) owner:nil options:nil] ;
|
||
//
|
||
// THMineTypeNavView *navView = newxibArray.firstObject;
|
||
// navView.frame = CGRectMake(0, self.openVipBtn.qmui_bottom + 20,SCREEN_WIDTH, 40);
|
||
// [navView.upBtn addTarget:self action:@selector(upLoadAction) forControlEvents:UIControlEventTouchUpInside];
|
||
// [self.contentScrollView addSubview:navView];
|
||
|
||
|
||
// UIView *emptyTipsView = [[UIView alloc] init];
|
||
// emptyTipsView.backgroundColor = [UIColor clearColor];
|
||
// emptyTipsView.width = SCREEN_WIDTH;
|
||
// UIImageView *emptyIconView = [[UIImageView alloc] initWithImage:ImageNamed(@"TH_pro_photo_icon")];
|
||
// emptyIconView.size = CGSizeMake(FIX_SIZE(49), FIX_SIZE(49));
|
||
// emptyIconView.centerX = emptyTipsView.width * 0.5;
|
||
// emptyIconView.y = FIX_SIZE(30);
|
||
// [emptyTipsView addSubview:emptyIconView];
|
||
// UILabel *emptyTipsLabel = [UILabel mt_titleLabelWithText:@"上传你的照片\n让别人了解你"];
|
||
// emptyTipsLabel.font = NORMAL_FONT;
|
||
// [emptyTipsLabel sizeToFit];
|
||
// emptyTipsLabel.centerX = emptyIconView.centerX;
|
||
// emptyTipsLabel.y = emptyIconView.bottom + FIX_SIZE(6);
|
||
// [emptyTipsView addSubview:emptyTipsLabel];
|
||
//
|
||
// emptyTipsView.height = emptyTipsLabel.bottom;
|
||
// emptyTipsView.y = navView.bottom + FIX_SIZE(3);
|
||
//
|
||
// self.emptyTipsView = emptyTipsView;
|
||
//
|
||
// [self.contentScrollView addSubview:self.emptyTipsView];
|
||
//
|
||
//
|
||
// UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
||
// layout.minimumLineSpacing = 1;
|
||
// layout.minimumInteritemSpacing = 1;
|
||
// CGFloat itemWidth = (self.view.width - 3) / 3.0;
|
||
// CGFloat itemHeight = itemWidth * 165.0 / 125.0;
|
||
// layout.itemSize = CGSizeMake(itemWidth, itemHeight);
|
||
// self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, navView.qmui_bottom + 10, SCREEN_WIDTH, 170 * 3) collectionViewLayout:layout];
|
||
// [self.collectionView registerClass:ProfilePhotoCell.class forCellWithReuseIdentifier:ProfilePhotoCellID];
|
||
// [self.view addSubview:self.collectionView];
|
||
// self.collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||
// self.collectionView.alwaysBounceVertical = YES;
|
||
// self.collectionView.delegate = self;
|
||
// self.collectionView.dataSource = self;
|
||
// self.collectionView.backgroundColor = [UIColor clearColor];
|
||
// [self.contentScrollView addSubview:self.collectionView];
|
||
|
||
|
||
[self.contentScrollView addSubview:self.contentTableView];
|
||
|
||
self.contentScrollView.contentSize = CGSizeMake(SCREEN_WIDTH,TabBarHeight + self.contentTableView.qmui_bottom );
|
||
// self.contentScrollView.contentSize = CGSizeMake(SCREEN_WIDTH,FIX_SIZE(1000));
|
||
|
||
}
|
||
|
||
- (void)viewDidLoad {
|
||
[super viewDidLoad];
|
||
// Do any additional setup after loading the view.
|
||
|
||
NSLog(@"self.infoArray==%@",self.infoArray);
|
||
|
||
UIImageView *bgImgView = [UIImageView new];
|
||
bgImgView.frame = self.view.bounds;
|
||
bgImgView.image = UIImageMake(@"TH_MineBg");
|
||
[self.view insertSubview:bgImgView atIndex:0];
|
||
|
||
|
||
}
|
||
|
||
- (BOOL)isSupportContentScrollView {
|
||
return YES;
|
||
}
|
||
|
||
- (BOOL)mt_nagationBarTransparent{
|
||
return YES;
|
||
}
|
||
|
||
//-(UIView *)userView{
|
||
// if (!_userView) {
|
||
//
|
||
// }
|
||
// return _userView;
|
||
//}
|
||
|
||
-(UIButton *)openVipBtn{
|
||
if (!_openVipBtn) {
|
||
_openVipBtn = [[UIButton alloc]initWithFrame:CGRectMake(FIX_SIZE(22), _userView.bottom, SCREEN_WIDTH - FIX_SIZE(44), 339)];
|
||
_openVipLab = [[UILabel alloc]initWithFrame:CGRectMake(FIX_SIZE(80), FIX_SIZE(40), FIX_SIZE(160), FIX_SIZE(17))];
|
||
_openVipLab.textColor = HEX_COLOR(0xFFFFFF);
|
||
_openVipLab.font = FONT_SIZE(12);
|
||
[_openVipBtn addSubview:_openVipLab];
|
||
|
||
_openVipLab.text = @"二十种专属特权等你领取";
|
||
}
|
||
if (_userModel.isVIP) {
|
||
[_openVipBtn setBackgroundImage:[UIImage imageNamed:@"TH_pro_vip_card_content_S"] forState:UIControlStateNormal];
|
||
_openVipLab.hidden = NO;
|
||
}else{
|
||
[_openVipBtn setBackgroundImage:[UIImage imageNamed:@"TH_pro_vip_card_content_N"] forState:UIControlStateNormal];
|
||
// _openVipLab.hidden = YES;
|
||
}
|
||
[_openVipBtn addTarget:self action:@selector(openVipBtnClick:) forControlEvents:UIControlEventTouchUpInside];
|
||
return _openVipBtn;
|
||
}
|
||
|
||
-(UIView *)contentTableView{
|
||
if (!_contentTableView) {
|
||
NSArray* dataArray = @[@{@"img":@"near_icon",@"title":@"附近隐身",@"subTitle":@"",@"isHaveSwitch": @"YES"},@{@"img":@"pwd_icon",@"title":@"APP密码锁",@"subTitle":@"",@"isHaveSwitch":@"YES"},@{@"img":@"yaoqing",@"title":@"邀请有奖",@"subTitle":@"免费领取会员",@"isHaveSwitch":@"NO"},@{@"img":@"TH_pro_yjfk",@"title":@"意见反馈",@"subTitle":@"有事就找我哈",@"isHaveSwitch":@"NO"},@{@"img":@"TH_pro_gd",@"title":@"更多",@"subTitle":@"",@"isHaveSwitch":@"NO"}];
|
||
CGFloat cellH = FIX_SIZE(44);
|
||
_contentTableView = [[UIView alloc]initWithFrame:CGRectMake(FIX_SIZE(12), _openVipBtn.bottom + FIX_SIZE(25), SCREEN_WIDTH - FIX_SIZE(24) , dataArray.count*cellH + FIX_SIZE(20))];
|
||
_contentTableView.layer.cornerRadius = FIX_SIZE(6);
|
||
_contentTableView.layer.masksToBounds = YES;
|
||
_contentTableView.layer.borderColor = HEX_COLOR_A(0xFFFFFF, 0.3).CGColor;
|
||
_contentTableView.layer.borderWidth = FIX_SIZE(1);
|
||
|
||
for (NSInteger i = 0; i < dataArray.count ; i++) {
|
||
UIButton* cellBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, FIX_SIZE(10) + cellH*i, _contentTableView.width, cellH)];
|
||
NSString *title = dataArray[i][@"title"];
|
||
[cellBtn setTitle:title forState:UIControlStateNormal];
|
||
|
||
[cellBtn setTitleColor:HEX_COLOR_A(0x000000, 0) forState:UIControlStateNormal];
|
||
[cellBtn addTarget:self action:@selector(cellBtnClick:) forControlEvents:UIControlEventTouchUpInside];
|
||
[_contentTableView addSubview:cellBtn];
|
||
|
||
UIImageView* iconImgV = [[UIImageView alloc]initWithFrame:CGRectMake(FIX_SIZE(10), (cellBtn.height - FIX_SIZE(24))/2.0, FIX_SIZE(24), FIX_SIZE(24))];
|
||
iconImgV.image = [UIImage imageNamed:dataArray[i][@"img"]];
|
||
[cellBtn addSubview:iconImgV];
|
||
|
||
UILabel* leftCellBtnLab = [[UILabel alloc]initWithFrame:CGRectMake(iconImgV.right + FIX_SIZE(10), iconImgV.y, FIX_SIZE(120), FIX_SIZE(24))];
|
||
leftCellBtnLab.text = [NSString stringWithFormat:@"%@",dataArray[i][@"title"]];
|
||
leftCellBtnLab.textAlignment = NSTextAlignmentLeft;
|
||
leftCellBtnLab.font = MT_FONT_MEDIUM_SIZE(16);
|
||
leftCellBtnLab.textColor = HEX_COLOR_A(0xFFFFFF, 1);
|
||
[cellBtn addSubview:leftCellBtnLab];
|
||
|
||
|
||
if ([title isEqualToString:@"附近隐身"]) {
|
||
UIView* nianVipView = [[UIView alloc]initWithFrame:CGRectMake(FIX_SIZE(115), leftCellBtnLab.y + (leftCellBtnLab.height - FIX_SIZE(16))/2.0, 34, FIX_SIZE(16))];
|
||
nianVipView.layer.cornerRadius = 8;
|
||
nianVipView.layer.masksToBounds = YES;
|
||
// gradient
|
||
CAGradientLayer *gl = [CAGradientLayer layer];
|
||
gl.frame = CGRectMake(0,0,nianVipView.width,nianVipView.height);
|
||
gl.startPoint = CGPointMake(0, 0.5);
|
||
gl.endPoint = CGPointMake(1, 0.5);
|
||
gl.colors = @[(__bridge id)HEX_COLOR(0xE4B18B).CGColor, (__bridge id)HEX_COLOR(0xFFF4EC).CGColor, (__bridge id)HEX_COLOR(0xE4B18B).CGColor];
|
||
gl.locations = @[@(0), @(0.5f), @(1.0f)];
|
||
[nianVipView.layer addSublayer:gl];
|
||
UILabel* nianVipLab = [[UILabel alloc]initWithFrame:nianVipView.bounds];
|
||
|
||
nianVipLab.text = @"年VIP";
|
||
|
||
nianVipLab.textColor = HEX_COLOR(0x000000);
|
||
nianVipLab.textAlignment = NSTextAlignmentCenter;
|
||
nianVipLab.font = MT_FONT_MEDIUM_SIZE(10);
|
||
[nianVipView addSubview:nianVipLab];
|
||
[cellBtn addSubview:nianVipView];
|
||
}
|
||
|
||
|
||
UILabel* rightSubCellBtnLab = [[UILabel alloc]initWithFrame:CGRectMake(cellBtn.width - FIX_SIZE(37) - FIX_SIZE(120), iconImgV.y, FIX_SIZE(120), FIX_SIZE(24))];
|
||
rightSubCellBtnLab.text = [NSString stringWithFormat:@"%@",dataArray[i][@"subTitle"]];
|
||
rightSubCellBtnLab.textAlignment = NSTextAlignmentRight;
|
||
rightSubCellBtnLab.font = MT_FONT_MEDIUM_SIZE(12);
|
||
rightSubCellBtnLab.textColor = HEX_COLOR_A(0xFFFFFF, 1);
|
||
[cellBtn addSubview:rightSubCellBtnLab];
|
||
|
||
if ([dataArray[i][@"isHaveSwitch"] isEqualToString:@"NO"]) {
|
||
UIImageView* rightArrowImgV = [[UIImageView alloc]initWithFrame:CGRectMake(cellBtn.width - FIX_SIZE(10) - FIX_SIZE(24), (cellBtn.height - FIX_SIZE(24))/2.0, FIX_SIZE(24), FIX_SIZE(24))];
|
||
rightArrowImgV.image = [UIImage imageNamed:@"TH_pro_right_arrow_white"];
|
||
[cellBtn addSubview:rightArrowImgV];
|
||
}else{
|
||
UISwitch* onSwitch = [[UISwitch alloc]initWithFrame:CGRectMake(cellBtn.width - FIX_SIZE(10) - 51, (leftCellBtnLab.height - 31)/2.0, 51, 31)];
|
||
onSwitch.onTintColor = HEX_COLOR(0xFFAD10);
|
||
if ([title isEqualToString:@"附近隐身"]) {
|
||
onSwitch.tag = 0;
|
||
onSwitch.on = self.statusStr.intValue == 1;
|
||
self.nearSwitch = onSwitch;
|
||
} else {
|
||
onSwitch.tag = 1;
|
||
BOOL canOpen = [UserService isSecurityCodeOpen];
|
||
onSwitch.on = canOpen;
|
||
}
|
||
|
||
[onSwitch addTarget:self action:@selector(onSwitchClick:) forControlEvents:UIControlEventValueChanged];
|
||
[cellBtn addSubview:onSwitch];
|
||
}
|
||
|
||
}
|
||
}
|
||
return _contentTableView;
|
||
}
|
||
//pro_vip_card_content_N
|
||
|
||
//进入个人主页
|
||
-(void)pushPersonalPageBtnClick:(UIButton*)sender{
|
||
[PYAppService pushViewControllerAnimated:[[ProfileCardViewController alloc] initWithUserID:[UserService currentUserID]]];
|
||
}
|
||
//关注,粉丝,互关
|
||
-(void)functionBtnClick:(UIButton*)sender{
|
||
UserListViewController *userListVC = [[UserListViewController alloc] init];
|
||
if ([sender.titleLabel.text isEqualToString:@"互关"]) {
|
||
userListVC.scene = 0;
|
||
}else if ([sender.titleLabel.text isEqualToString:@"关注"]) {
|
||
userListVC.scene = 1;
|
||
}else if ([sender.titleLabel.text isEqualToString:@"粉丝"]) {
|
||
userListVC.scene = 2;
|
||
}
|
||
[PYAppService pushViewControllerAnimated:userListVC];
|
||
}
|
||
//vip页面
|
||
-(void)openVipBtnClick:(UIButton*)sender{
|
||
[PYAppService showVipVC:@"vip_page"];
|
||
}
|
||
//邀请,我的瓶子
|
||
-(void)cellBtnClick:(UIButton*)sender{
|
||
if ([sender.titleLabel.text isEqualToString:@"邀请有奖"]) {
|
||
[PYAppService pushViewControllerAnimated:[InviteCodeViewController new]];
|
||
}else if ([sender.titleLabel.text isEqualToString:@"我的瓶子"]) {
|
||
[SVProgressHUD showImage:nil status:@"已放之瓶无须念,往事随风自然开~"];
|
||
}else if ([sender.titleLabel.text isEqualToString:@"APP密码锁"]) {
|
||
}else if ([sender.titleLabel.text isEqualToString:@"意见反馈"]) {
|
||
[PYAppService pushViewControllerAnimated:[FeedbackViewController new]];
|
||
}else if ([sender.titleLabel.text isEqualToString:@"更多"]) {
|
||
[PYAppService pushViewControllerAnimated:[SettingsViewController new]];
|
||
}
|
||
}
|
||
|
||
-(void)onSwitchClick:(UISwitch*)sender{
|
||
if (sender.tag == 0) {
|
||
[self setIsOpenNear:sender.isOn sender:sender];
|
||
} else if (sender.isOn) {
|
||
if ([UserService currentUser].security_code.length != SecurityCodeLength) {
|
||
[sender setOn:NO animated:NO];
|
||
[AlertInputView showWithTitle:@"设置密码" content:nil maxLength:SecurityCodeLength action:^BOOL(NSString * _Nonnull content) {
|
||
if (content.length != SecurityCodeLength) {
|
||
[ToastUtil showToast:[NSString stringWithFormat:@"请输入%lu位数字", (unsigned long)SecurityCodeLength] position:CSToastPositionTop];
|
||
return NO;
|
||
}
|
||
[UserService updateUserSecurityToRemote:@{
|
||
@"security_code" : content ?: @"",
|
||
@"is_security_on" : @(1),
|
||
} completion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (error) {
|
||
[sender setOn:NO animated:YES];
|
||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||
[SVProgressHUD showErrorWithStatus:[error.userInfo objectForKey:@"message"]];
|
||
});
|
||
return;
|
||
} else { // 设置成功
|
||
[sender setOn:YES animated:YES];
|
||
[UserService currentUser].security_code = content;
|
||
[UserService currentUser].is_security_on = 1;
|
||
}
|
||
}];
|
||
return YES;
|
||
}];
|
||
return;
|
||
}else{
|
||
[sender setOn:NO animated:NO];
|
||
[UserService updateUserSecurityToRemote:@{
|
||
@"security_code" : [UserService currentUser].security_code,
|
||
@"is_security_on" : @(1),
|
||
} completion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (error) {
|
||
[sender setOn:NO animated:YES];
|
||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||
[SVProgressHUD showErrorWithStatus:[error.userInfo objectForKey:@"message"]];
|
||
});
|
||
return;
|
||
} else { // 设置成功
|
||
[UserService currentUser].is_security_on = 1;
|
||
[sender setOn:YES animated:YES];
|
||
}
|
||
}];
|
||
}
|
||
} else {
|
||
[UserService updateUserSecurityToRemote:@{
|
||
@"security_code" : [UserService currentUser].security_code,
|
||
@"is_security_on" : @(0),
|
||
} completion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (error) {
|
||
[sender setOn:YES animated:YES];
|
||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||
[SVProgressHUD showErrorWithStatus:[error.userInfo objectForKey:@"message"]];
|
||
});
|
||
return;
|
||
} else { // 设置成功
|
||
[UserService currentUser].is_security_on = 0;
|
||
[sender setOn:NO animated:YES];
|
||
}
|
||
}];
|
||
}
|
||
}
|
||
|
||
- (void)setIsOpenNear:(BOOL)isOpen sender:(UISwitch*)sender {
|
||
if (isOpen){
|
||
if([UserService currentUser].vip_kind == 10){
|
||
[PYHTTPManager postWithPath:@"userhide" params:@{@"state":@1} callback:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (error == nil) {
|
||
self.statusStr = @"1";
|
||
} else {
|
||
sender.on = false;
|
||
}
|
||
}];
|
||
} else {
|
||
sender.on = false;
|
||
[MTAlertView showWithSetupBlcok:^(MTAlertViewConfig *config) {
|
||
config.message = @"";
|
||
config.title = @"开通年vip后就可以在附近隐身啦,还可以获得其他十九种会员特权哦";
|
||
|
||
config.otherTitle = @"去开通";
|
||
config.cancelTitle = @"取消";
|
||
config.otherHandler = ^(MTAlertButton *button) {
|
||
[PYAppService showVipVC:@"vip_page"];
|
||
};
|
||
}];
|
||
}
|
||
|
||
} else {
|
||
|
||
[PYHTTPManager postWithPath:@"userhide" params:@{@"state":@0} callback:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (error == nil) {
|
||
self.statusStr = @"0";
|
||
|
||
} else {
|
||
sender.on = true;
|
||
}
|
||
}];
|
||
}
|
||
}
|
||
|
||
-(void)userImgVAlertClick:(UITapGestureRecognizer*)tap{
|
||
UIImageView* userImgV = (UIImageView*)tap.view;
|
||
BigUserImgAlertView* alertView = [[BigUserImgAlertView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
|
||
alertView.userImg = userImgV.image;
|
||
[[ZcqVender theTopviewControler].view addSubview:alertView];
|
||
|
||
}
|
||
|
||
|
||
#pragma mark - UICollectionViewDataSource
|
||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||
self.emptyTipsView.hidden = self.photosM.count > 0;
|
||
return self.photosM.count;
|
||
}
|
||
|
||
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
|
||
return 1;
|
||
}
|
||
|
||
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||
ProfilePhotoCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ProfilePhotoCellID forIndexPath:indexPath];
|
||
cell.photo = self.photosM[indexPath.item];
|
||
return cell;
|
||
}
|
||
|
||
#pragma mark - UICollectionDelegate
|
||
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
|
||
ProfilePhotoCell *cell = (ProfilePhotoCell *)[collectionView cellForItemAtIndexPath:indexPath];
|
||
NSMutableArray *items = @[].mutableCopy;
|
||
for (int i = 0; i < self.photosM.count; i++) {
|
||
KSPhotoItem *item = [KSPhotoItem itemWithSourceView:indexPath.item == i ? cell.imageView : nil imageUrl:[NSURL URLWithString:self.photosM[i].url ?: @""]];
|
||
[items addObject:item];
|
||
}
|
||
|
||
KSPhotoBrowser *browser = [KSPhotoBrowser browserWithPhotoItems:items selectedIndex:indexPath.item];
|
||
browser.delegate = self;
|
||
browser.pageindicatorStyle = KSPhotoBrowserPageIndicatorStyleText;
|
||
browser.backgroundStyle = KSPhotoBrowserBackgroundStyleBlack;
|
||
[KSPhotoBrowser setImageViewBackgroundColor:[UIColor clearColor]];
|
||
browser.dismissalStyle = KSPhotoBrowserInteractiveDismissalStyleScale;
|
||
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:browser];
|
||
self.browser = browser;
|
||
nav.modalPresentationStyle = UIModalPresentationOverFullScreen;
|
||
[self.navigationController presentViewController:nav animated:NO completion:nil];
|
||
}
|
||
|
||
#pragma mark -KSPhotoBrowserDelegate
|
||
- (void)ks_photoBrowser:(KSPhotoBrowser *)browser didLongPressItem:(KSPhotoItem *)item atIndex:(NSUInteger)index {
|
||
|
||
if (index < self.photosM.count) {
|
||
ProfilePhoto *photo = self.photosM[index];
|
||
self.actionSheetPhoto = photo;
|
||
if (photo.is_top) {
|
||
self.photoSheet = [[MTActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"取消置顶", @"删除", nil];
|
||
} else {
|
||
self.photoSheet = [[MTActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"置顶", @"删除", nil];
|
||
}
|
||
[self.photoSheet showInView:browser.navigationController.view];
|
||
}
|
||
}
|
||
|
||
- (void)ks_photoBrowserDidDismiss:(KSPhotoBrowser *)browser {
|
||
self.browser = nil;
|
||
}
|
||
|
||
|
||
@end
|