1

我对 xcframwork 有疑问。当我创建 xcframwork 时,我的属性未显示在我的主项目情节提要中。当我创建框架时,它会在我的故事板中显示所有属性。

我创建了以下代码

@objc 
public extension UIView  {
        // Note  : Corner radius and shadow not work both side by side so you need to outlet and set layer radius
        // other wise you can set layer.cornerradius in user defines
       
        //MARK: Border COLOR
        @IBInspectable
        var borderColor: UIColor? {
            get {
                return self.borderColor
            }
            set {
                self.layer.borderColor = newValue?.cgColor
            }
        }
    }

1 使用框架

在此处输入图像描述

它显示所有属性

在此处输入图像描述

现在我创建了 xcframework。所有属性都没有显示现在我被这个困住了。

任何人都可以帮助我如何创建 xcframwork 并像普通框架一样显示所有属性。请帮助我。

4

1 回答 1

0

框架中的属性是内部的。当没有指定访问修饰符时,Swift 默认为 internal。 在此处输入图像描述

所以在你的代码中:

var radTopLeft:CGFloat = 0 {
        didSet {
            self.setNeedsLayout()
        }
    }

相当于:

internal var radTopLeft:CGFloat = 0 {
        didSet {
            self.setNeedsLayout()
        }
    }

因此,框架外的任何代码都不能访问此属性。为了使框架使用者可以访问它,您必须将属性标记为公共。IE

public var radTopLeft:CGFloat = 0 {
        didSet {
            self.setNeedsLayout()
        }
    }

测试一下:https ://drive.google.com/file/d/1_WSGKRKNt4lytrVEuozn8W4WYRR6nPif/view?usp=sharing

于 2020-10-20T20:38:38.210 回答