如何使圆形的任何观点[关闭](How to make round shape of any view

2019-09-02 10:36发布

我只想外形来看改变从广场回合。 正如我尝试用cornerRadious,但它仅仅只有咫尺之遥。 因为我想使整个观为圆形。

Answer 1:

一个UIView总是矩形。 但是,您可以使它看起来圆(或任何形状可言,实际上)带着面具。 为了这样做,使一个UIImage这是一个黑色圆圈(在透明的背景)。 现在采取的UIImage的CGImage,使之成为CALayer的内容。 最后,设置的CALayer作为mask视图层的。

让我们假设你的看法是100×100。然后(没有测试,但应该是非常正确的):

UIGraphicsBeginImageContextWithOptions(CGSizeMake(100,100), NO, 0);
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [UIColor blackColor].CGColor);
CGContextFillEllipseInRect(c, CGRectMake(0,0,100,100));
UIImage* maskim = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

CALayer* mask = [CALayer new];
mask.frame = CGRectMake(0,0,100,100);
mask.contents = (id)maskim.CGImage;

view.layer.mask = mask;


Answer 2:

你可以让圆角的边框以这种方式与任何控件的边框宽度: -

CALayer * l1 = [viewPopup layer];
[l1 setMasksToBounds:YES];
[l1 setCornerRadius:5.0];

// You can even add a border
[l1 setBorderWidth:5.0];
[l1 setBorderColor:[[UIColor darkGrayColor] CGColor]];


只需更换viewPopup您控制。

注: -不要忘了导入<QuartzCore/QuartzCore.h>



Answer 3:

试试这个代码: -

[roundView.layer setCornerRadius:50.0f];
[roundView.layer setBorderColor:[UIColor lightGrayColor].CGColor];
[roundView.layer setBorderWidth:1.5f];
[roundView.layer setShadowColor:[UIColor blackColor].CGColor];
[roundView.layer setShadowOpacity:0.8];
[roundView.layer setShadowRadius:3.0];
[roundView.layer setShadowOffset:CGSizeMake(2.0, 2.0)];

注: - roundView是要圆你的看法。

我希望它可以帮助你。 谢谢



文章来源: How to make round shape of any view [closed]