ios - 如何在 UIView 和 UIImageView 中重用相同的 IBDesignable 代码

标签 ios swift uiview uiimageview

enter image description here

I have a IBDesignable class for making border line and corner radius. The problem is I have to write separate classes for UIView and UIImageview. Is there a simple solution for this. Thanks in advance.

 @IBDesignable
    class View: UIView {
        //MARK:- Corner Radius
        @IBInspectable
        var cornerRadius : CGFloat =  0{
          didSet {
                self.layer.masksToBounds = true
                self.layer.cornerRadius = cornerRadius   
            } 
        }
    }

Image view

 @IBDesignable
        class ImageView: UIImageView {
            //MARK:- Corner Radius
            @IBInspectable
            var cornerRadius : CGFloat =  0{
              didSet {
                    self.layer.masksToBounds = true
                    self.layer.cornerRadius = cornerRadius   
                } 
            }
        }

最佳答案

像下面这样创建扩展

extension UIView
{
    @IBInspectable var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius;
        }
        set(value) {
            layer.cornerRadius = value;
        }
    }

    var rounded: Bool {
        return layer.cornerRadius > 0.0;
    }
}

关于ios - 如何在 UIView 和 UIImageView 中重用相同的 IBDesignable 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48203761/

相关文章:

ios - UIPrintInteractionController 打印项目不显示/工作

ios - 在 swift 中使用本地化字符串进行枚举

swift - GameOver Showing Interstitial Ad 后,场景回到 WelcomeScene

ios - 从不同的 View 更改 View textLabel

ios - 无法在 Swift 中从 UIView 呈现 AlertController

objective-c - 带 2 XIB 的旋转人像风景

android - 在没有 photoshop 知识的情况下创建简单的启动画面(Ionic/Cordova)

swift - 使用 SwiftyJSON 解析 comlpex JSON

swift - UIScrollView 宽度比屏幕宽

ios - Swift 如何将触摸点击限制在手机的左侧和右侧