zoukankan      html  css  js  c++  java
  • 新浪微博客户端(16)-获得并显示用户昵称

    DJHomeViewController.m

    - (void)updateTitleViewDisplayName {
    
        AFHTTPSessionManager *requestManager = [AFHTTPSessionManager manager];
        
        NSString *urlString = @"https://api.weibo.com/2/users/show.json";
        
        DJAccount *account = [DJAccountTool account];
        NSMutableDictionary *params = [NSMutableDictionary dictionary];
        params[@"access_token"] = account.access_token;
        params[@"uid"] = account.uid;
        
        [requestManager GET:urlString parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, NSDictionary *  _Nullable dict) {
            // 存储当前用户昵称
            NSString *screen_name = dict[@"screen_name"];
            account.screen_name = screen_name;
            [DJAccountTool saveAccount:account];
            // 更新titleView显示昵称
            UIButton *titleView = (UIButton *)self.navigationItem.titleView;
            [titleView setTitle:screen_name forState:UIControlStateNormal];
            
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            DJLog(@"获取用户信息失败");
        }];
        
    
    }

    DJTitleView.m

    #import "DJTitleView.h"
    
    @implementation DJTitleView
    
    
    
    
    - (instancetype)initWithFrame:(CGRect)frame {
    
        self = [super initWithFrame:frame];
        if (self) {
            [self setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
            self.titleLabel.font = [UIFont systemFontOfSize:16];
            [self setImage:[UIImage imageNamed:@"navigationbar_arrow_down"] forState:UIControlStateNormal];
            [self setImage:[UIImage imageNamed:@"navigationbar_arrow_up"] forState:UIControlStateSelected]; // 设置选中状态
            self.imageView.backgroundColor = [UIColor clearColor];
        }
        return self;
    }
    
    
    
    
    - (void)layoutSubviews {
    
        [super layoutSubviews];
        
        // 将按钮内部的imageView和titleLabel的位置对调,实现图标指示器在右侧的效果。
        self.titleLabel.x = self.imageView.x;
        self.imageView.x = CGRectGetMaxX(self.titleLabel.frame) + 4;
        
    }
    
    
    
    @end

    最终效果:

  • 相关阅读:
    Flink核心技术
    Flink学习问题和答案
    Spark知识点总结
    Scala知识点总结
    Spark测试题
    Hadoop概念试题
    IntelliJ IDEA 2019 快捷键终极大全
    Linux入门
    javaSe知识点总结
    Data
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6009412.html
Copyright © 2011-2022 走看看