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
- ios-新浪微博开发-23-加载微博数据
- IOS 分享新浪微博开发通知
- 新浪微博ios客户端 开发流程
- IOS开发之新浪微博OAuth2
- ios-新浪微博开发-16(授权)
- 新浪微博ios
- 【新浪微博项目】12--加载微博数据
- C#实现仿新浪微博 BigPipe 数据加载方式
- 新浪微博加载浏览器
- 新浪微博加载配置文件
- IOS 6社交应用开发-新浪微博
- iOS 分享新浪微博开发通知
- IOS新浪微博开发--分享、授权登录
- IOS开发——新浪微博认证失败处理
- iOS开发-新浪微博自定义tabbar的实现
- IOS新浪微博开发--分享、授权登录
- iOS开发之新浪微博登陆和分享
- ios开发 -新浪微博(4)封装item 添加分类
- Ubuntu 14.04 下简单方式安装Samba并实现文件夹共享
- Spring Boot 分布式Session状态保存Redis
- SQL函数整理
- 笔记20150920
- ubuntu解决eclipse中logcat只显示level栏
- ios-新浪微博开发-23-加载微博数据
- 白盒测试的几种覆盖方式
- 沈航组成原理作业——1
- PE文件格式解析 LUA版本,兼容32/64位
- 对象与方法
- 并行编程20-30
- 字节流与字符流
- 自做CA自签发SSL证书 https
- 网络营销推广的“三教九流”,你入了哪一流