Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将FBProfilePictureView转换为UIImage_Ios_Objective C_Facebook_Uiimageview - Fatal编程技术网

Ios 将FBProfilePictureView转换为UIImage

Ios 将FBProfilePictureView转换为UIImage,ios,objective-c,facebook,uiimageview,Ios,Objective C,Facebook,Uiimageview,我有一个Facebook登录,可以获取用户的个人资料图片、lblUsername和lblEmail。我知道FBProfilePictureView是一个包含UIImageView的UIView 因此,我要问的是,如何将您从Facebook获得的个人资料图片转换或“保存”为UIImage?这是我的登录视图控制器.m。我已经在LoginViewController.h文件中正确导入了Facebook SDK #import "LoginViewController.h" #import <Qu

我有一个Facebook登录,可以获取用户的个人资料图片、lblUsername和lblEmail。我知道FBProfilePictureView是一个包含UIImageView的UIView

因此,我要问的是,如何将您从Facebook获得的个人资料图片转换或“保存”为UIImage?这是我的登录视图控制器.m。我已经在LoginViewController.h文件中正确导入了Facebook SDK

#import "LoginViewController.h"
#import <QuartzCore/QuartzCore.h>

@interface LoginViewController ()

- (void)toggleHiddenState:(BOOL)shouldHide;

@end

@implementation LoginViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [self toggleHiddenState:YES];
    self.lblLoginStatus.text = @"";

    self.loginButton.readPermissions = @[@"public_profile", @"email"];
    self.loginButton.layer.cornerRadius = 0;
    [self.loginButton.layer setBorderWidth:0.0f];

    self.loginButton.delegate = self;


//    UIImageView *image = nil;
//    
//    for (NSObject *pic in [self.profilePicture subviews]) {
//        if ([pic isMemberOfClass:[UIImageView class]]) {
//            UIImageView *objImg = (UIImageView *)pic;
//            image = objImg.image;
//            break;
//        }
//    }
//    
//    self.view.backgroundColor = [UIColor colorWithPatternImage:image];
//
    // Do any additional setup after loading the view.
}

-(void)toggleHiddenState:(BOOL)shouldHide{
    self.lblUsername.hidden = shouldHide;
    self.lblEmail.hidden = shouldHide;
    self.profilePicture.hidden = shouldHide;
    self.loggedinwallpaper.hidden = shouldHide;
    self.FBlogout.hidden = shouldHide;
}

-(void)toggleUnhiddenState:(BOOL)shouldShow{
    self.loggedinwallpaper.hidden = NO;
}

-(void)loginViewShowingLoggedInUser:(FBLoginView *)loginView{
    self.lblLoginStatus.text = @"";

    [self toggleHiddenState:NO];
    [self toggleUnhiddenState:YES];
}

-(void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView{
    self.lblLoginStatus.text = @"";

    [self toggleHiddenState:YES];
}

-(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user{
    NSLog(@"%@", user);
    self.profilePicture.profileID = user.objectID;
    self.lblUsername.text = user.name;
    self.lblEmail.text = [user objectForKey:@"email"];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *homeViewController = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
    [self presentViewController:homeViewController animated:YES completion:nil];

//    
//    for (NSObject *obj in [self.profilePicture subviews]) {
//        if ([obj isMemberOfClass:[UIImageView class]]) {
//            UIImageView *objImg = (UIImageView *)obj;
//            image = objImg.image;
//            break;
//        }
//    }
}



-(void)loginView:(FBLoginView *)loginView handleError:(NSError *)error{
    NSLog(@"%@", [error localizedDescription]);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
//- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
//    UIImage *image = _profilePicture;
//    HomeViewController *homeviewController = (HomeViewController *)segue.destinationViewController;
//    homeviewController.homepic = image;
//

    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
//}


@end
#导入“LoginViewController.h”
#进口
@接口LoginViewController()
-(void)切换隐藏状态:(BOOL)应隐藏;
@结束
@实现LoginViewController
-(无效)viewDidLoad{
[超级视图下载];
[自切换HiddenState:是];
self.lblLoginStatus.text=@;
self.loginButton.readPermissions=@[@“public_profile”、@“email”];
self.loginButton.layer.cornerRadius=0;
[self.loginButton.layer setBorderWidth:0.0f];
self.loginButton.delegate=self;
//UIImageView*图像=nil;
//    
//用于(在[self.profilePicture子视图]中的NSObject*pic){
//if([pic IsMemberOf类:[UIImageView类]]){
//UIImageView*对象=(UIImageView*)图片;
//image=objImg.image;
//中断;
//        }
//    }
//    
//self.view.backgroundColor=[UIColor WithPatternImage:image];
//
//加载视图后执行任何其他设置。
}
-(无效)切换HIDDENSTATE:(BOOL)应该隐藏{
self.lblUsername.hidden=应该隐藏;
self.lblEmail.hidden=应隐藏;
self.profilePicture.hidden=shouldHide;
self.loggedinwallper.hidden=应隐藏;
self.FBlogout.hidden=应隐藏;
}
-(void)切换取消隐藏状态:(BOOL)shouldShow{
self.loggedinwallpaper.hidden=否;
}
-(无效)loginView显示日志用户:(FBLoginView*)loginView{
self.lblLoginStatus.text=@;
[自切换HiddenState:否];
[自切换取消隐藏状态:是];
}
-(无效)loginView显示LoggeDoutUser:(FBLoginView*)loginView{
self.lblLoginStatus.text=@;
[自切换HiddenState:是];
}
-(void)loginView蚀刻教育信息:(FBLoginView*)loginView用户:(id)用户{
NSLog(@“%@”,用户);
self.profilePicture.profileID=user.objectID;
self.lblUsername.text=user.name;
self.lblEmail.text=[user objectForKey:@“email”];
UIStoryboard*情节提要=[UIStoryboard情节提要,名称:@“Main”bundle:nil];
UIViewController*homeViewController=(UIViewController*)[storyboard InstanceEviewController标识符:@“homeViewController”];
[self-presentViewController:homeViewController动画:是完成:无];
//    
//用于(在[self.profilePicture子视图]中的NSObject*obj){
//if([obj IsMemberOf类:[UIImageView类]]){
//UIImageView*对象=(UIImageView*)对象;
//image=objImg.image;
//中断;
//        }
//    }
}
-(无效)loginView:(FBLoginView*)loginView句柄错误:(N错误*)错误{
NSLog(@“%@,[错误本地化描述]);
}
-(无效)未收到记忆警告{
[超级记忆警告];
//处置所有可以重新创建的资源。
}
#pragma标记-导航
//在基于故事板的应用程序中,您通常需要在导航之前做一些准备
//-(void)prepareForSegue:(UIStoryboardSegue*)segue发送方:(id)发送方{
//UIImage*image=\u profilePicture;
//HomeViewController*HomeViewController=(HomeViewController*)segue.destinationViewController;
//homeviewController.homepic=图像;
//
//使用[segue destinationViewController]获取新的视图控制器。
//将选定对象传递给新的视图控制器。
//}
@结束

我不会使用这样的图片,因为facebook会加载不同大小的图片,你不知道你是否会得到一个低质量的版本。你不能下载你自己需要的尺寸的图片吗

Facebook使用如下URL:


ofc您需要将用户的facebook用户ID和宽度以及高度交换为您需要的值。

因此,使用我已经设置好的FB登录(连接到解析,我不想弄乱它),如果您知道,我将如何设置该url以获取图片?或者如果你不确定我将如何使用该url,即使你不会像这样使用图像,你知道我将如何做吗?我在回答中向你展示了如何构建链接-我不太理解你给我的url的问题。我只是想知道我将如何使用我已经获得的用户ID来获取图像。我明白你现在说的话。谢谢你的帮助!