IOS - 个人中心界面

来源:互联网 发布:自学钢琴软件 编辑:程序博客网 时间:2024/05/01 07:01

个人中心界面:
用户信息, 服务历史, 会员中心, 设置与帮助, 意见反馈.


代码

////  IndexUserCenter600ViewController.h//  SymptomChecker////  Created by Wang on 2015-7-21.////#import "CYTableViewController.h"@interface IndexUserCenter600ViewController : CYTableViewController- (void)setLoginStatus;@end
////  IndexUserCenter600ViewController.m//  SymptomChecker////  Created by Wang on 2015-7-21.////#import "IndexUserCenter600ViewController.h"#import "UserCenter600Item.h"#import "MATUserInfoViewInSettingView.h"#import "UserInfoViewInSettingView.h"#import "IndexTelHistoryViewController.h" // 服务历史#import "MATMemberCenterViewController.h" // 会员中心页面#import "IndexSetting600ViewController.h" // 设置与帮助#import "FeedbackDetailViewController.h" // 意见反馈#define kViewRadio viewWidth()/320@interface IndexUserCenter600ViewController ()@end@implementation IndexUserCenter600ViewController {    MATUserInfoViewInSettingView *_mUserHeaderView; // 默认用户信息    UserInfoViewInSettingView *_dUserHeaderView; // 用户信息    UserCenter600Item *_serviceHistoryItem;     // 服务历史    UserCenter600Item *_vipDetailItem;          // 会员中心    UserCenter600Item *_settingsItem;           // 设置与帮助    UserCenter600Item *_adviceItem;             // 意见反馈    BOOL _isLogin; // 是否登录}- (id) initWithQuery:(NSDictionary *)query {    self = [super initWithQuery: query];    if (self) {        self.title = @"我的账号";        // 隐藏底部信息        self.hidesBottomBarWhenPushed = NO;        [[NSNotificationCenter defaultCenter] addObserver: self                                                 selector: @selector(userInfoChanged)                                                     name: kUserLoginSucceed                                                   object: nil];        [[NSNotificationCenter defaultCenter] addObserver: self                                                 selector: @selector(logout)                                                     name: kNotificationUserLogout                                                   object: nil];        [[NSNotificationCenter defaultCenter] addObserver: self                                                 selector: @selector(onVIPMemberStatusChanged)                                                     name: kNotificationVIPInfoChanged                                                   object: nil];        [[NSNotificationCenter defaultCenter] addObserver: self                                                 selector: @selector(userInfoChanged)                                                     name: kNotificationNickNameChanged                                                   object: nil];        [[NSNotificationCenter defaultCenter] addObserver: self                                                 selector: @selector(userInfoChanged)                                                     name: kNotificationPortraitChanged                                                   object: nil];    }    return self;}- (void)dealloc {    [[NSNotificationCenter defaultCenter] removeObserver:self];}- (void) viewDidLoad {    [super viewDidLoad];    [self createTableItems];    [self.view setBackgroundColor:[UIColor whiteColor]];    [self.tableView setBackgroundColor:[UIColor clearColor]];    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];}// 切换Tab调用的函数- (void) viewWillAppear:(BOOL)animated {    [super viewWillAppear: animated];    [self setLoginStatus];}// 创建Model- (void) createModel {    [self setLoginStatus];}//// 创建用到的item//- (void) createTableItems {    NIDPRINTMETHODNAME();    WEAK_VAR(self);    CGRect headerRect = CGRectMake(0, 0, viewWidth(), 192*kViewRadio);    // 用户信息    _mUserHeaderView = [[MATUserInfoViewInSettingView alloc] initWithFrame:headerRect];    [self.tableView setTableHeaderView:_mUserHeaderView];    // 服务历史    _serviceHistoryItem = [[UserCenter600Item alloc] initWithIcon:@"service_his_600.png"                                                             name:@"服务历史"];    [self.tableViewActions attachToObject: _serviceHistoryItem                                 tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {                                     // 服务历史页面                                     IndexTelHistoryViewController *controller =                                     [[IndexTelHistoryViewController alloc] initWithNavigatorURL:nil                                                                                           query:nil];                                     [_self navigateToController:controller];                                     return NO;                                 }];    // 会员中心    _vipDetailItem = [[UserCenter600Item alloc] initWithIcon:@"main_menu_account_icon.png"                                                        name:@"会员中心"];    [self.tableViewActions attachToObject: _vipDetailItem                                 tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {                                     // 会员中心页面                                     MATMemberCenterViewController* controller =                                     [[MATMemberCenterViewController alloc] initWithNavigatorURL:nil                                                                                           query:@{@"source":@"vip"}];                                     [_self navigateToController:controller];                                     return NO;                                 }];    // 设置与帮助    _settingsItem = [[UserCenter600Item alloc] initWithIcon: @"setting_600.png"                                                       name: @"设置与帮助"];    [self.tableViewActions attachToObject: _settingsItem                                 tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {                                     // 设置与帮助页面                                     IndexSetting600ViewController *controller =                                     [[IndexSetting600ViewController alloc] initWithQuery: nil];                                     [_self navigateToController:controller];                                     return NO;                                 }];    // 意见反馈    _adviceItem = [[UserCenter600Item alloc] initWithIcon: @"suggest_600.png"                                                     name: @"意见反馈"];    [self.tableViewActions attachToObject: _adviceItem                                 tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {                                     //  直接进入建议详情                                     FeedbackDetailViewController* controller =                                     [[FeedbackDetailViewController alloc] initWithNavigatorURL:nil query:nil];                                     [_self navigateToController:controller];                                     return NO;                                 }];}- (void)navigateToController:(CYViewController *)controller {    [[SymptomCheckerAppDelegate appDelegate].topViewController.navigationController pushViewController:controller                                                                                              animated:NO];}//// 根据用户的登录状态,来设置UI//- (void)setLoginStatus {    NIDPRINTMETHODNAME();    NSArray *tableItems;    if ([User hasLoggedIn]) {        CGRect headerRect = CGRectMake(0, 0, viewWidth(), 192*kViewRadio);        _dUserHeaderView = [[UserInfoViewInSettingView alloc] initWithFrame:headerRect];        [self.tableView setTableHeaderView:_dUserHeaderView];        [_dUserHeaderView logOut];        [_dUserHeaderView updateData];        // 已登录        tableItems = [@[_serviceHistoryItem,                        _vipDetailItem,                        _settingsItem,                        _adviceItem] mutableCopy];    } else {        CGRect headerRect = CGRectMake(0, 0, viewWidth(), 192*kViewRadio);        _mUserHeaderView = [[MATUserInfoViewInSettingView alloc] initWithFrame:headerRect];        [self.tableView setTableHeaderView:_mUserHeaderView];        // 未登录        tableItems = @[_settingsItem,                       _adviceItem];    }    self.tableViewModel = [[NITableViewModel alloc] initWithListArray:tableItems                                                             delegate:self.cellFactory];}#pragma mark NotificationSelector// 登出操作已经在setting界面完成,这里只需要更新UI- (void) logout {    // 更新当前的界面    [self setLoginStatus];}- (void) onVIPMemberStatusChanged {    NIDPRINTMETHODNAME();    [self setLoginStatus];}//// 用户信息改变,包括用户金币,头像,昵称,任务数//- (void) userInfoChanged {    NIDPRINTMETHODNAME();    [self setLoginStatus];}#pragma mark - AKTabBarController的相关配置- (NSString *)tabImageName {    return @"btn_user_center_normal.png";}- (NSString *)tabImageNameSel {    return @"btn_user_center_selected.png";}- (NSString *)tabTitle {    return @"个人中心";}@end

效果
效果


娱乐

1 0
原创粉丝点击