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

Posted

技术标签:

【中文标题】如何在 UIView 和 UIImageView 中重用相同的 IBDesignable 代码【英文标题】:How to reuse the same IBDesignable code in UIView and UIImageView 【发布时间】:2018-01-11 09:37:03 【问题描述】:

我有一个 IBDesignable 类用于制作边界线和圆角半径。 问题是我必须为 UIView 编写单独的类和 图像视图。有没有一个简单的解决方案。提前致谢。

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

图像视图

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

【问题讨论】:

【参考方案1】:

像下面这样创建扩展

extension UIView

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

    var rounded: Bool 
        return layer.cornerRadius > 0.0;
    

【讨论】:

谢谢哥们,我想在 UIView 和 UIImageview 中复用代码

以上是关于如何在 UIView 和 UIImageView 中重用相同的 IBDesignable 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在ios目标c的UIImageView中添加UIView

如何将 UIImageView 添加到 UIView(不是 UIViewController)?

如何在 UIView 中有一个 UIImageView 并应用 NSLayoutConstraint?

如何以编程方式将 UILabel 和 UiImageView 添加到表视图单元格内的 UIView?

如何撤消和/或清除添加到 UIView 的 UIImageView?

IOS将UIVIew中的UIImageView扁平化为单个UIView [重复]