iphone - 如何制作任何 View 的圆形

标签 iphone ios user-interface uiview

<分区>

我只想将 View 的形状从方形更改为圆形。当我尝试使用 cornerRadious 时,但它只是在拐角处。因为我想把整个 View 做成圆形。

最佳答案

UIView 始终是矩形的。但是,您可以使用 mask 使它看起来是圆形的(或者实际上是任何形状)。为此,制作一个黑色圆圈的 UIImage(在透明背景中)。现在获取该 UIImage 的 CGImage 并将其作为 CALayer 的内容。最后,将该 CALayer 设置为 View 层的 mask

让我们假设您的 View 是 100 x 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;

关于iphone - 如何制作任何 View 的圆形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16475728/

相关文章:

iphone - 已在项目中时找不到 xcode4 文件

iphone - 如何更改分组的 tableViewCell 的高度?

ios - 使用 Core Plot 动画(脉冲、发光)CPTPlotSymbol

iphone - 应用商店的单元测试

iphone - UIButton setFont 在 iPhone 2G iOS 3.1.3 上失败

ios - 当应用程序被用户强制退出时处理推送通知 iOS(替代方案?)

ios - 向左或向右移动 UINavigationBar 标题的文本

php - 用户友好的注册系统

python - 为什么子图没有占用嵌入 Tkinter 的 Matplotlib 中图形允许的所有空间?

jquery - 我怎样才能获得 Stackoverflow/Stackexchange - 比如标签悬停工具提示?