【问题标题】:Make view circular without masksToBounds使视图在没有 maskToBounds 的情况下为圆形
【发布时间】:2016-09-23 13:42:16
【问题描述】:

如雷达 (28342777) 所示 - 创建 UIImageView 时,iOS10 中存在问题。由于视图是自动生成的 (1000x1000px),因此有时它们不会显示。

关闭masksToBounds 将使它们正确显示,但不允许制作圆形。 我尝试单独使用cornerRadius,但它不起作用。

有解决办法吗?

【问题讨论】:

  • 你不能在实例化时用较小的框架初始化视图吗?
  • 我在 IB 已经做到了。我对它有限制,说宽度 = 高度 = 64。但它不会改变
  • 您能否尝试对其进行子类化,使用您自己的自定义 init 调用 init 并随后设置框架,这样在设置图像之前就为您完成了?
  • 其实我觉得这里有一个更简单的解决方案,看看:stackoverflow.com/questions/39475456/…
  • @Woodstock 好的,现在在您的帮助下找到了解决方案。在我的单元格类中,我将 maskToBounds = true - self.layoutIfNeeded() 放在上面。我还需要调用 self.userInteractionEnabled = true

标签: ios swift uiimageview cornerradius


【解决方案1】:

如果你需要让你的 UIImageView 循环,你必须在 viewDidLayoutSubviews 而不是 viewDidLoad 方法中这样做,如:

override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        self.yourImageView.layer.cornerRadius = self.yourImageView.frame.size.height/2
        self.yourImageView.clipsToBounds = true

    }

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 2012-08-22
    • 2019-04-02
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多