如何使iOS FBSDKProfilePictureView 圆形?

Posted

技术标签:

【中文标题】如何使iOS FBSDKProfilePictureView 圆形?【英文标题】:How to make iOS FBSDKProfilePictureView Round? 【发布时间】:2015-05-09 08:50:45 【问题描述】:

我正在尝试对 FBSDKProfilePictureView 进行四舍五入,但我做不到。

这是我所拥有的:

ViewController.h

@property (weak, nonatomic) IBOutlet FBSDKProfilePictureView *fbPhoto;

ViewDidLoad 上的 ViewController.m

self.fbPhoto.layer.cornerRadius = 30.0;
self.fbPhoto.layer.borderColor = [UIColor lightGrayColor].CGColor;
self.fbPhoto.layer.borderWidth = 1.0;

它在 UIIMage 前面画了一个圆形,但它不会“裁剪”图像。

我该怎么做

【问题讨论】:

试试这个 self.fbPhoto.layer.clipToBounds = YES;或 self.fbPhoto.layer.maskToBounds = YES; 【参考方案1】:

只需设置clipsToBounds

self.fbPhoto.layer.cornerRadius = 30.0;
self.fbPhoto.clipsToBounds=YES;
self.fbPhoto.layer.borderColor = [UIColor lightGrayColor].CGColor;
self.fbPhoto.layer.borderWidth = 1.0;

【讨论】:

【参考方案2】:

首先要设置像whats up和FB这样的圆形头像,您可以使用下面的逻辑,然后将fbPhoto类的setAutoresizesSubviews设置为NO

使用下面的代码代替你的..

[self.fbPhoto.layer setCornerRadius:self.fbPhoto.frame.size.height/2];
[self.fbPhoto.layer setBorderColor:[UIColor lightGrayColor].CGColor];
[self. fbPhoto.layer setBorderWidth:1];
[self.fbPhoto setAutoresizesSubviews:NO];

【讨论】:

【参考方案3】:

Jay 的建议奏效了。很快就来了:

    //rounded corners
    ProfilePicture.layer.cornerRadius = ProfilePicture.frame.size.width / 2
    ProfilePicture.layer.borderColor = UIColor.whiteColor().CGColor
    ProfilePicture.layer.borderWidth = 1.0;
    ProfilePicture.clipsToBounds = true

【讨论】:

以上是关于如何使iOS FBSDKProfilePictureView 圆形?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AutoLayout (iOS/Xamarin.iOS) 使 ScrollView 适合其内容?

如何使iOS FBSDKProfilePictureView 圆形?

如何在 iOS 中使定位更准确?

如何使socket.io只连接一次

如何使 iOS 7 应用向后兼容?

如何在 iOS 7 中使导航栏透明? [复制]