我坚持使用PROPER方式获取所有用户的Facebook好友并将其加载到表格视图中(我只是使用FBFriendPickerViewController但它的丑陋而且它似乎没有出现你可以修复它)
我想要的只是单元格imageView中的个人资料图片和单元格textLabel中的名称,简单就是这样。
使用NSURL / NSData执行此操作并不会裁剪图像,而是使用FBProfilePictureView,因此请尝试在任何解决方案中使用它。谢谢!
从Facebook获取数据
-(void)facebookOpenSession {
if (FBSession.activeSession.isOpen) {
[[FBRequest requestForMyFriends] startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error) {
// handle error
} else {
self.facebookFriends = [NSArray arrayWithArray:[result objectForKey:@"data"]];
[[NSNotificationCenter defaultCenter] postNotificationName:@"facebookRequestForMyFriends" object:self];
}
}];
}
}
将数据配置到单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
// Configure the cell...
NSDictionary<FBGraphUser> *friend = [self.facebookFriends objectAtIndex:indexPath.row];
cell.textLabel.text = friend.name;
NSURL *profilePictureUrl = [NSURL URLWithString:[NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=normal", friend.id]];
NSData *profilePictureData = [NSData dataWithContentsOfURL:profilePictureUrl];
cell.imageView.image = [UIImage imageWithData:profilePictureData];
return cell;
}
人们如何通过Facebook SDK学习如何制作所有这些东西,我花了将近4个小时尝试做上面描述的事情,我觉得我完全错过了什么。
答案 0 :(得分:0)
有几个开源库可以轻松下载图像。我最喜欢的是AFNetworking,但也有SDWebImage。使用其中一个类别,您的任务就变得如此简单:
[myImageView setImageURL:"http://test.com/test.jpg"];
即使您不想使用这些图书馆,也不要按照您当前正在尝试使用的方式(即[NSData dataWithContentsOfURL:profilePictureUrl]
)进行操作。我相信这是一个阻止你的UI的同步操作。使用上面2个链接之一的代码,或者创建自己的UIImageView类别。