【问题标题】:Round corners on UIImageView work. But I don't get a circleUIImageView 上的圆角工作。但我没有得到一个圆圈
【发布时间】:2015-02-09 03:02:20
【问题描述】:

我正在尝试将圆角应用于 UIImageView。虽然角是圆的,但仍然有 4 条边,无论半径大小,它们都不会消失。移除边框也无济于事。

这可能与自动布局约束有关吗?我做错了什么?

这是我正在应用的代码:

self.imageViewProfilePicture.layer.cornerRadius = self.imageViewProfilePicture.frame.size.width / 2.0
self.imageViewProfilePicture.layer.borderWidth = 2.0
self.imageViewProfilePicture.layer.borderColor = UIColor.whiteColor().CGColor
self.imageViewProfilePicture.layer.masksToBounds = true
self.imageViewProfilePicture.clipsToBounds = true

Link to the image

【问题讨论】:

  • 你在哪里调用这个代码?里面哪个方法?您是否使用约束来设置大小?它的宽度等于它的高度吗?
  • 您链接的图片似乎与此问题无关。您是否将图像视图与图像混淆了????它们是非常不同的东西。
  • @GustavoBarbosa 此代码应用于 viewDidLoad()。是的,在情节提要中设置了约束。是的,它的宽度等于它的高度。
  • @matt 链接中的图片显示了我应用的边框。里面应该是图片(我已经为这篇文章删除了)。我不会将图像与图像视图混淆,我知道它们是非常不同的东西。
  • 投反对票的是什么?

标签: ios uiimageview


【解决方案1】:

尝试将你的borderWidth设置为0。

【讨论】:

  • 边缘即使没有边界也能保持
【解决方案2】:

当您使用约束来定义 imageView 的宽度和高度时,最终帧将在子视图布局之后定义。在您的情况下,只需将您的代码移至viewDidLayoutSubviews

- (void)viewDidLayoutSubviews
{
    super.viewDidLayoutSubviews()

    self.imageViewProfilePicture.layer.cornerRadius = self.imageViewProfilePicture.frame.size.width / 2.0
    self.imageViewProfilePicture.layer.borderWidth = 2.0
    self.imageViewProfilePicture.layer.borderColor = UIColor.whiteColor().CGColor
    self.imageViewProfilePicture.layer.masksToBounds = true
    self.imageViewProfilePicture.clipsToBounds = true
}

【讨论】:

  • 你说的太对了!!!但真的,你从哪里得到这个?有没有一本书以适当的方式解释了所有这些东西?我的意思是,我在 iOS 上编程了几个月,但我认为我没有一些(被低估的......)基本的理解,比如什么时候真的画了一些东西。试图把它放在 viewwillappear 方法中是行不通的,虽然我认为应该已经设置了所有出现之前的moemt(自动布局、框架等),所以应该完成“重绘”?!?!跨度>
猜你喜欢
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 2019-09-04
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
相关资源
最近更新 更多