IOS UIView层setCornerRadius为椭圆形

Posted

技术标签:

【中文标题】IOS UIView层setCornerRadius为椭圆形【英文标题】:IOS UIView layer setCornerRadius in ellipse shape 【发布时间】:2014-04-15 20:17:18 【问题描述】:

我对使用UIView 制作椭圆形状有点怀疑。

我的视图有一个像w:50.0f e h:20.0f 这样的维度并使用这个命令:

[[viewElement layer] setCornerRadius:w/2];

但是这个形状不是椭圆的好形状。

我想要这个:

形状的边界变形了,我可以制作一个符合预期形状的椭圆吗?

谢谢

【问题讨论】:

你有没有试过在设置圆角半径时使用高度而不是宽度? 【参考方案1】:

试试这个:

viewElement.frame = CGRectMake(0, 0, w, w);
viewElement.layer.cornerRadius = w / 2;
viewElement.transform = CGAffineTransformMakeScale(1, h / w);

【讨论】:

【参考方案2】:

使用cornerRadius 是不可能制作椭圆的。您可以使用CGContextStrokeEllipseInRect 函数代替它来绘制椭圆。

【讨论】:

以上是关于IOS UIView层setCornerRadius为椭圆形的主要内容,如果未能解决你的问题,请参考以下文章

iOS CALayer 简单介绍

使用 CAGradientLayer 类更改 UiView IOS 的渐变背景图层颜色

iOS动画1 — UIView动画

iOS开发之CALayer介绍

iOS动画解析

iOS学习笔记10-UIView动画