【问题标题】:Creating 100% round UIView/UIImageview创建 100% 圆形 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 的东西。

标签: ios objective-c uiview uiimageview


【解决方案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;
    

    试试上面的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2019-09-09
      • 1970-01-01
      相关资源
      最近更新 更多