ios-新浪微博开发-23-加载微博数据

来源:互联网 发布:小意思tpo for mac 编辑:程序博客网 时间:2024/04/30 09:39
#import "QHHomeViewController.h"#import "QHDropdownMenu.h"#import "QHTitleMenuTableViewController.h"#import "AFNetworking.h"#import "QHAccountTool.h"#import "QHTitleButton.h"#import "UIImageView+WebCache.h"//https://api.weibo.com/2/users/show.json@interface QHHomeViewController ()<QHDropdownMenuDelegate>/** *  微博数组(里面放的都是字典 每个字典代表一条微博) */@property(nonatomic,strong)NSArray *statues;@end@implementation QHHomeViewController- (void)viewDidLoad {    [super viewDidLoad];        //设置导航栏    [self setupNav];        //获取用户信息(昵称)    [self setupUserInfo];        //加载最新的微博数据    [self loadNewStatus];    }/** *  加载最新的微博数据 */- (void)loadNewStatus{    //https://api.weibo.com/2/statuses/friends_timeline.json    //1.请求管理者    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];    //2.拼接参数    NSMutableDictionary *params = [NSMutableDictionary dictionary];    QHAccount *account = [QHAccountTool account];    params[@"access_token"] = account.access_token;//    params[@"count"] = @10;    //我们想获取哪些信息直接传参数就可以了    //3.发送请求    [mgr GET:@"https://api.weibo.com/2/statuses/friends_timeline.json" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {        QHLog(@"请求成功%@",responseObject);        //取得微博数组        self.statues = responseObject[@"statuses"];        //刷新表格        [self.tableView reloadData];    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        QHLog(@"请求失败-%@",error);    }];}/** *  获得用户信息(昵称) */- (void)setupUserInfo{    //https://api.weibo.com/2/users/show.json    //access_token false string 采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。    //uid false int64 需要查询的用户ID。    //1.请求管理者    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];        //2.拼接请求参数    QHAccount *account = [QHAccountTool account];    NSMutableDictionary *params = [NSMutableDictionary dictionary];    params[@"access_token"] = account.access_token;    params[@"uid"] =account.uid;         //3.发送请求    [mgr GET:@"https://api.weibo.com/2/users/show.json" parameters:params success:^(AFHTTPRequestOperation *operation, NSDictionary * responseObject) {        QHLog(@"请求成功%@",responseObject);        //标题按钮        UIButton *titleButton = (UIButton *)self.navigationItem.titleView;        //设置名字        NSString *name = responseObject[@"name"];        [titleButton setTitle:name forState:UIControlStateNormal];//        [titleButton sizeToFit];        //存储昵称到沙盒中        account.name = name;        [QHAccountTool saveAccount:account];            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        QHLog(@"请求失败-- %@",error);    }];}/** *  设置导航栏 */- (void)setupNav{    //这时self.view.window 值为空    NSLog(@"%@",self.view.window);    /*设置导航栏上面的内容*/        //注意这一调用的是控制器的方法 Tool 里面没有方法 知识调用action 的方法    self.navigationItem.leftBarButtonItem =[UIBarButtonItem itemWithTarget:self Action:@selector(friendSearch) image:@"navigationbar_friendsearch" highImage:@"navigationbar_friendsearch_highlighted"];    self.navigationItem.rightBarButtonItem = [UIBarButtonItem itemWithTarget:self Action:@selector(pop) image:@"navigationbar_pop" highImage:@"navigationbar_pop_highlighted"];    QHLog(@"QHHomeViewController");        /*中间的标题按钮*/    QHTitleButton *titleButton = [[QHTitleButton alloc]init];//    titleButton.width = 150;//    titleButton.height = 30;    //titleButton.backgroundColor = QHRandomColor;        //设置图片和文字    NSString * name = [QHAccountTool account].name;        [titleButton setTitle:name?name:@"首页" forState:UIControlStateNormal];        //    titleButton.imageEdgeInsets = UIEdgeInsetsMake(0, 90, 0, 0);//    titleButton.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 40);    self.navigationItem.titleView = titleButton;    //按钮的自适应 内部的内容有多大 按钮就不用设置 代替了实质宽高//    [titleButton sizeToFit];    //如果图片的某个方向上不规则 比如突起 那么这个方向就不能拉伸        //监听标题的点击    [titleButton addTarget:self action:@selector(titleClick:) forControlEvents:UIControlEventTouchUpInside];    /**     * 解决方案 转换坐标系     *     *     */    }/** *  标题点击 */-(void)titleClick:(UIButton *)titleButton{    //1.创建下拉菜单    QHDropdownMenu *menu = [QHDropdownMenu menu];    menu.delegate = self;    //2.设置内容    //menu.content = [UIButton buttonWithType:UIButtonTypeContactAdd];    //menu.content = [[UITableView alloc]initWithFrame:CGRectMake(0,0 , 100, 100) style:UITableViewStylePlain];        QHTitleMenuTableViewController *vc = [[QHTitleMenuTableViewController alloc]init];    vc.view.height = 44*3;    vc.view.width = 150;#warning mark  在里面保存了全局变量 所以不会被销毁     menu.contentController = vc;    //3.显示    [menu showFrom:titleButton];        //4.让箭头向上       // [menu dismiss]; }#pragma mark - 代理方法QHDropdownMenuDelegate/** *  下拉菜单被销毁了 向下 * *  @param menu <#menu description#> */- (void)dropdownMenueDidDismiss:(QHDropdownMenu *)menu{    UIButton *titleButton = (UIButton *)self.navigationItem.titleView;    titleButton.selected = NO;    // [titleButton setImage:[UIImage imageNamed:@"navigationbar_arrow_down"] forState:UIControlStateNormal];}/** *  下拉菜单显示了 向上 * *  @param menu <#menu description#> */- (void)dropdownMenueDidShow:(QHDropdownMenu *)menu{    UIButton *titleButton = (UIButton *)self.navigationItem.titleView;    titleButton.selected = YES;    //[titleButton setImage:[UIImage imageNamed:@"navigationbar_arrow_up"] forState:UIControlStateNormal];}-(void)friendSearch{    NSLog(@"friendsearch");}-(void)pop{    NSLog(@"pop");}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}#pragma mark - Table view data source- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {    return self.statues.count;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {        static NSString *ID = @"status";    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];    if (cell == nil) {        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];    }    //取出这行对应微博字典    NSDictionary *status = self.statues[indexPath.row];        //取出这条微博的作者(用户)    NSDictionary *user = status[@"user"];    cell.textLabel.text = user[@"name"];        //设置微博文字    cell.detailTextLabel.text = status[@"text"];        //设置头像    NSString *imageUrl = user[@"profile_image_url"];    UIImage *placehoder = [UIImage imageNamed:@"avatar_default_small"];    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:placehoder];    //QHLog(@"%@",user);        return cell;}@end

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 申请移民美国期间护照到期了怎么办 自己申请的qq号账号忘了怎么办 苹果手机下完游戏找不到在哪怎么办 苹果四下游戏的密码忘了怎么办 qq斗地主老自动发消息怎么办 微信小程序斗地主被限制了怎么办 台式电脑玩斗地主总黑屏怎么办 玩斗地主屏幕出现一半玩不了怎么办 电脑qq文件破损或部分丢失怎么办 华为平板电脑开机密码忘记了怎么办 微信被太多人投诉被限制登录怎么办 微信账号被永久封号里面的钱怎么办 乱世王者领礼包时账号异常怎么办 qq填写资料见证号格式错误怎么办 如果把微信注销 王者的号怎么办 93元的吃鸡号忘了激活吗怎么办 王者荣耀实名注册不是自己的怎么办 苹果手机打开qq太慢了怎么办 剪辑视频打开了软件关闭不了怎么办 玩永恒纪元手游网络老掉线怎么办 绝地求生买的钥匙激活码忘了怎么办 魅族手机移动网络打不开网页怎么办 小米5s升级后下载不了软件怎么办 电脑可以登qq却开不了网页怎么办 手机微信图片没下载原图怎么办 qq号密码忘了密保忘了怎么办 扣扣更改密保手机失败怎么办 至尊宝安全模式密保手机更换怎么办 微信号手机号换了密码忘记了怎么办 被加盟网店托管骗了怎么办 善林金融倒闭投资者的钱怎么办? 微信支付密码忘了怎么办没绑卡 美团外卖没有骑手接单怎么办 发微信的"发送"没有了怎么办 华硕电脑下面的任务栏卡住了怎么办 微信登别人电脑上忘记退了怎么办 买手机买全新结果买到翻新机怎么办 苹果手机激活锁忘了id账号怎么办 淘宝很多产品都需要3c怎么办 小米mix装在兜里还能解锁怎么办 痰咳不出来憋的嘴唇紫了怎么办