问题描述
我在使用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。所有属性都不会显示现在,我对此感到困惑。我也添加我的源代码以查看我的问题。
https://drive.google.com/file/d/1-Zz3AhI9iT09wqv0d5qCxptLg0B5LOq0/view?usp=sharing
任何人都可以帮助我如何创建xcframwork并显示所有属性,例如普通框架。请帮助我。
解决方法
框架中的属性是内部的。如果未指定访问修饰符,则Swift默认为internal。 enter image description here
因此在您的代码中:
var radTopLeft:CGFloat = 0 {
didSet {
self.setNeedsLayout()
}
}
等效于:
internal var radTopLeft:CGFloat = 0 {
didSet {
self.setNeedsLayout()
}
}
因此,框架外的任何代码都无法访问此属性。为了使框架使用者可以访问它,您必须将属性标记为公共。即
public var radTopLeft:CGFloat = 0 {
didSet {
self.setNeedsLayout()
}
}
测试一下:https://drive.google.com/file/d/1_WSGKRKNt4lytrVEuozn8W4WYRR6nPif/view?usp=sharing