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

    最终效果:

  • 相关阅读:
    ios开发--KVO浅析
    为iPhone6设计自适应布局
    详解iOS多线程 (转载)
    一些Iphone sqlite 的包装类
    ios多线程和进程的区别(转载)
    数据链路层解析
    物理层解析,交换机命令行
    计算机网络,数制模型
    java爬虫中jsoup的使用
    hadoop+zookeeper集群高可用搭建
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6009412.html
Copyright © 2011-2022 走看看