创建 100% 圆形 UIView/UIImageview
Posted
技术标签:
【中文标题】创建 100% 圆形 UIView/UIImageview【英文标题】:Creating 100% round UIView/UIImageview 【发布时间】:2016-07-01 03:01:34 【问题描述】:我打算用下面几行代码来添加一个“圆视图”:
_myBackView = [[UIView alloc] initWithFrame:rect];
_myBackView.backgroundColor = [UIColor colorWithR:153 G:85 B:57 alpha:1.0];
_myBackView.layer.cornerRadius = artworkViewWidth / 2;
_myBackView.layer.masksToBounds = YES;
_myBackView.layer.borderWidth = 0;
_myBackView.clipsToBounds = NO;
[self.view addSubview:_myBackView];
视图创建得很好,看起来大多是圆形的。但问题是它似乎不是“100% 圆形”——虽然我将 clipsToBounds 属性设置为 NO,但四个边缘似乎仍然有些剪裁。
任何指导将不胜感激。
编辑:刚刚添加了复制图片。请注意被剪裁的 4 个边缘。
【问题讨论】:
将有助于获得您正在测试的图像。另外,图片是正方形吗? 请包括rect
的计算。该矩形必须具有width==artworkViewWidth
才能使角半径正确。如果是这样,视图将形成一个完美的圆圈。
@CodeBender 感谢您的回复。我已经包括了屏幕截图。我还没有在这里直接显示图像,而只是直接用 UIView 测试cornerRadius 的东西。
【参考方案1】:
你可以试试这个(使用圆形 png 遮罩层)
- (void)useMaskFor: (UIView*)colorArea
CALayer *maskLayer = [CALayer layer];
maskLayer.frame = colorArea.bounds;
UIImage *maskImage = [UIImage imageNamed:@"cirMask.png"];
maskLayer.contents = (__bridge id)maskImage.CGImage;
colorArea.layer.mask = maskLayer;
从这个How to draw a custom UIView that is just a circle - iPhone app回答
【讨论】:
【参考方案2】: _image.layer.cornerRadius = _image.frame.size.height/2;
_image.layer.masksToBounds = YES;
试试上面的代码。
【讨论】:
以上是关于创建 100% 圆形 UIView/UIImageview的主要内容,如果未能解决你的问题,请参考以下文章
CSS 还是 jQuery?如何根据具有灵活大小的容器获得圆形? [复制]