ifish/Ifish/UMCommunity/UMCommunitySDK/UMCommunityUI/simple/User/UMComSimplicityUserCenterVi...

252 lines
8.9 KiB
Objective-C

//
// UMComSimplicityUserCenterViewController.m
// UMCommunity
//
// Created by 张军华 on 16/5/19.
// Copyright © 2016年 Umeng. All rights reserved.
//
#import "UMComSimplicityUserCenterViewController.h"
#import "UMComResouceDefines.h"
#import <UIKit/UIKit.h>
#import <UMComDataStorage/UMComModelObjectHeader.h>
#import "UMComShowToast.h"
#import "UMComSimpleFeedTableViewController.h"
#import <UMCommunitySDK/UMComDataTypeDefine.h>
#import "UMComChangeBorderBtn.h"
#import "UMComUserDataController.h"
#import <UMCommunitySDK/UMComSession.h>
#import <UMComFoundation/UMComKit+Color.h>
#import <UMComFoundation/UMComDefines.h>
#import "UMComImageView.h"
#import "UMComFeedListDataController.h"
#define g_userCenter_count_template @"动态 %lu"
@interface UMComSimplicityUserCenterViewController ()<UMImageViewDelegate>
@property (weak, nonatomic) IBOutlet UIView *statusBarView; //status bar的占位view
@property (weak, nonatomic) IBOutlet UILabel *countLabel; //关注动态
@property (weak, nonatomic) IBOutlet UMComImageView *medal; //勋章
@property (weak, nonatomic) IBOutlet UIButton *backBtn; //返回按钮
@property (weak, nonatomic) IBOutlet UMComImageView *protrainImageView; //头像
@property (weak, nonatomic) IBOutlet UILabel *userName; //用户名
@property (weak, nonatomic) IBOutlet UIImageView *gender; //性别
@property (weak, nonatomic) IBOutlet UMComChangeBorderBtn *reportBtn; //举报
@property (weak, nonatomic) IBOutlet UIView *userInfoView; //整个userinfo的view
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *medalWidthConstraint;
@property (nonatomic, strong) UMComUserDataController *userDataController;
-(void)refreshUserInfo:(UMComUser*)user;
-(void)handleBackBtn:(id)target;
-(void)handleReportBtn:(id)target;
@end
@implementation UMComSimplicityUserCenterViewController
- (void)viewDidLoad {
[super viewDidLoad];
if (UMComSystem_Version_Greater_Than_Or_Equal_To(@"7.0"))
{
}
else
{
//版本小于7.0的时候,去掉statusBarView控件所有的约束
[self.statusBarView removeFromSuperview];
}
//如果登陆用户的个人中心,就不显示举报
if ([self.user.uid isEqualToString:[UMComSession sharedInstance].loginUser.uid]) {
[self.reportBtn removeFromSuperview];
}
//初始化控件
// [self.backBtn setImage:UMComSimpleImageWithImageName(@"um_com_backwardwhite") forState:UIControlStateNormal];
[self.backBtn setImage:UMComSimpleImageWithImageName(@"um_forum_back_gray") forState:UIControlStateNormal];
[self.backBtn addTarget:self action:@selector(handleBackBtn:) forControlEvents:UIControlEventTouchUpInside];
//设置举报控件
[self.reportBtn.layer setCornerRadius:6];
[self.reportBtn.layer setBorderWidth:1];
UIColor* normalColor = UMComColorWithHexString(@"FFFFFF");
UIColor* highlightedColor = UMComColorWithHexString(@"#469ef8");
self.reportBtn.normalBorderColor = normalColor;
self.reportBtn.highlightedBorderColor = highlightedColor;
[self.reportBtn.layer setBorderColor:normalColor.CGColor];
self.reportBtn.titleLabel.textColor = UMComColorWithHexString(@"FFFFFF");
self.reportBtn.titleLabel.font = UMComFontNotoSansLightWithSafeSize(14);
self.reportBtn.backgroundColor = [UIColor clearColor];
[self.reportBtn setTitleColor:UMComColorWithHexString(@"999999") forState:UIControlStateHighlighted];
[self.reportBtn setTitleColor:UMComColorWithHexString(@"FFFFFF") forState:UIControlStateNormal];
[self.reportBtn addTarget:self action:@selector(handleReportBtn:) forControlEvents:UIControlEventTouchUpInside];
//设置头像
self.protrainImageView.layer.cornerRadius = self.protrainImageView.bounds.size.width/2;
self.protrainImageView.clipsToBounds = YES;
self.protrainImageView.image = UMComSimpleImageWithImageName(@"um_com_defaultAvatar");
//设置名字
self.userName.font = UMComFontNotoSansLightWithSafeSize(14);
self.userName.backgroundColor = [UIColor clearColor];
self.userName.textColor = UMComColorWithHexString(@"FFFFFF");
//设置动态
self.countLabel.font = UMComFontNotoSansLightWithSafeSize(14);
self.countLabel.textColor = UMComColorWithHexString(@"FFFFFF");
UMComSimpleFeedTableViewController *feedVc = [[UMComSimpleFeedTableViewController alloc] init];
feedVc.dataController = [[UMComFeedTimeLineDataController alloc] initWithCount:UMCom_Limit_Page_Count userID:self.user.uid timeLineFeedListType:UMComUserTimeLineFeedType_Default];
[self.view addSubview:feedVc.view];
[self addChildViewController:feedVc];
UIView *feedView = feedVc.view;
[feedView setTranslatesAutoresizingMaskIntoConstraints:NO];
NSDictionary *dict1 = NSDictionaryOfVariableBindings(feedView, _userInfoView);
NSDictionary *metrics = @{@"hPadding":@0,@"vPadding":@0};
NSString *vfl = @"|-hPadding-[feedView]-hPadding-|";
NSString *vfl0 = @"V:|-vPadding-[_userInfoView]-0-[feedView]-vPadding-|";
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:vfl options:0 metrics:metrics views:dict1]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:vfl0 options:0 metrics:metrics views:dict1]];
[self getUserProfile];
//请求用户信息
[self refreshUserInfo:self.user];
}
- (void)setUser:(UMComUser *)user
{
_user = user;
}
- (void)getUserProfile
{
__weak typeof(self) weakSelf = self;
if (!self.userDataController) {
self.userDataController = [UMComUserDataController userDataControllerWithUser:self.user];
}
[self.userDataController fetchUserProfileCompletion:^(id responseObject, NSError *error) {
//请求用户信息
if (responseObject && [responseObject isKindOfClass:[UMComUser class]] && !error) {
weakSelf.user = responseObject;
[weakSelf refreshUserInfo:weakSelf.user];
}
else{
[UMComShowToast showFetchResultTipWithError:error];
}
[weakSelf refreshUserInfo:weakSelf.user];
}];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES];
}
-(void) viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO];
}
-(void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
}
#pragma mark - private method
-(void)refreshUserInfo:(UMComUser*)user
{
[self.protrainImageView setImageURL:user.icon_url.small_url_string placeHolderImage:UMComSimpleImageWithImageName(@"um_com_defaultAvatar")];
if (user.feed_count > 0) {
self.countLabel.text = [[NSString alloc] initWithFormat:g_userCenter_count_template,user.feed_count.longValue];
}
else{
self.countLabel.text = [[NSString alloc] initWithFormat:g_userCenter_count_template,(long)0];
}
self.userName.text = user.name;
if (user.gender.integerValue == 0) {
self.gender.image = UMComSimpleImageWithImageName(@"um_com_female");
}
else{
self.gender.image = UMComSimpleImageWithImageName(@"um_com_male");
}
if (user.medal_list.count > 0) {
self.medal.hidden = NO;
UMComMedal* medal = user.medal_list.firstObject;
if (medal && [medal isKindOfClass:[UMComMedal class]]) {
self.medal.delegate = self;
self.medal.isAutoStart = YES;
[self.medal setImageURL:medal.icon_url placeHolderImage:UMComSimpleImageWithImageName(@"um_com_authorized_smal")];
}
else{
[self.medal setImageURL:nil placeHolderImage:UMComSimpleImageWithImageName(@"um_com_authorized_smal")];
}
}
else
{
self.medal.hidden = YES;
}
}
-(void)handleBackBtn:(id)target
{
[self.navigationController popViewControllerAnimated:YES];
}
-(void)handleReportBtn:(id)target
{
[UMComLoginManager performLogin:self completion:^(id responseObject, NSError *error) {
if (!error) {
[[UMComDataRequestManager defaultManager] userSpamWitUID:self.user.uid completion:^(NSDictionary *responseObject, NSError *error) {
[UMComShowToast spamUser:error];
}];
}
}];
}
#pragma mark - UMImageViewDelegate
-(void) updateMedalWithImageView:(UMImageView *)imageView;
{
CGFloat width = imageView.bounds.size.width;
CGFloat height = imageView.bounds.size.height;
CGSize imageSize = imageView.image.size;
width = imageSize.width * height/ imageSize.height;
self.medalWidthConstraint.constant = width;
[self.medal updateConstraintsIfNeeded];
}
- (void)imageViewLoadedImage:(UMImageView*)imageView
{
NSLog(@"imageViewLoadedImage");
[self updateMedalWithImageView:imageView];
}
@end