2011-05-29 88 views
2

我有以下代码:圆角中的UIImageView

[avatar.layer setBorderColor:[[UIColor whiteColor] CGColor]]; 
[avatar.layer setBorderWidth:2.0]; 
[avatar.layer setShadowOffset:CGSizeMake(-1.0, -1.0)]; 
[avatar.layer setCornerRadius:8]; 

它不给我周围的UIImage圆形白色边框,但有是围绕4个角尖外..是有办法切断它关了?

enter image description here

回答

7

setMasksToBounds可能是你在找什么。

[avatar.layer setMasksToBounds:YES]; 
+0

虽然setMaskToBounds就会被裁剪的观点,我敢肯定,影子将不会显示任何(因为它被剪辑为好)。因此,您可能需要通过将裁剪后的视图放入另一个较大的视图来启用阴影。 – marcus 2011-05-30 07:45:35

+0

这是什么? – Jacky 2013-01-14 09:20:38

0
-(UIImage *)makeRoundedImage:(UIImage *) image 
         radius: (float) radius; 
{ 
    CALayer *imageLayer = [CALayer layer]; 
    imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height); 
    imageLayer.contents = (id) image.CGImage; 

    imageLayer.masksToBounds = YES; 
    imageLayer.cornerRadius = radius; 

    UIGraphicsBeginImageContext(image.size); 
    [imageLayer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return roundedImage; 
}