Swift 4中的Round Corners UIView

Jon*_*ano 9 uiview ios swift ibdesignable swift4

在swift 3中我可以做这样的事情让我的UIView转角:

import UIKit

@IBDesignable
class DesignableView: UIView {
}

extension UIView {

    @IBInspectable
    var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在故事板上我可以简单地改变这个: 性能

目前我正在设计一个"Build failed",但Idk为什么.我正在研究swift 4和Xcode 9.

为什么它不能在swift 4中运行?

Kru*_*nal 29

我已经尝试过你的代码,它在iOS 11.1和Swift 4.0上运行良好.(正如你所提到的,它会显示一个错误,但它没有显示任何错误)

@IBDesignable
class RoundUIView: UIView {

    @IBInspectable var borderColor: UIColor = UIColor.white {
        didSet {
            self.layer.borderColor = borderColor.cgColor
        }
    }

    @IBInspectable var borderWidth: CGFloat = 2.0 {
        didSet {
            self.layer.borderWidth = borderWidth
        }
    }

    @IBInspectable var cornerRadius: CGFloat = 0.0 {
        didSet {
            self.layer.cornerRadius = cornerRadius
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

这是结果

在此输入图像描述


更新:
即使您更新的代码也正常工作.

@IBDesignable
class DesignableView: UIView {
}

extension UIView {

    @IBInspectable
    var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是结果:

在此输入图像描述

  • @rmaddy很好,但我不在乎.他说他说什么,我说我说的话.Servy不是法律,同时我们在现场试图向提问者证明他们没有提供可重复的案例.如果你真的对此感到如此强烈,请标记答案,或者将其投票. (6认同)
  • @rmaddy有时需要证明代码确实有效.我认为这个答案非常合理. (5认同)