标签: ibinspectable

@IBInspectable 致命错误:解包可选值时意外发现 nil

我遇到了致命错误:在运行我的应用程序时,在解开一个 Optional 值时意外发现 nil 它因以下代码而挂起 这是调试显示的内容

swift ibinspectable xcode8

2
推荐指数
1
解决办法
1378
查看次数

无法在 UIView 中设置 @IBInspectable 计算属性

我正在尝试向IBInspectableUIView添加颜色,以便我可以在故事板中设置它,然后在代码中使用它。在这篇关于 UITextField 的帖子中,我已经看到我可以利用扩展和添加计算属性,但我不能让它为 UIView 工作。

身份检查员 在此处输入图片说明

我遇到了崩溃:无法在(UIView)上设置(additionalColor1)用户定义的检查属性:[setValue:forUndefinedKey:]:此类不符合键 additionalColor1 的键值编码。

知道是什么导致了崩溃以及如何修复它?

这是我的代码:

extension UIView {
    @IBInspectable var additionalColor1: UIColor? {
        return self.additionalColor1
    }
}
Run Code Online (Sandbox Code Playgroud)

作为参考,我粘贴了可用于为 UITextField 设置占位符颜色的代码(与上面的 url 相同)。这工作正常:

extension UITextField {
    @IBInspectable var placeHolderColor: UIColor? {
        get {
            return self.placeHolderColor
        }
        set {
            self.attributedPlaceholder = NSAttributedString(string: self.placeholder != nil ? self.placeholder! : "", attributes:[NSForegroundColorAttributeName: newValue!])
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

uiview swift ibinspectable

2
推荐指数
1
解决办法
1274
查看次数

Swift IBInspectable didSet 与 get/set

我对IBDesignables和比较陌生IBInspectable,我注意到很多教程都IBInspectable以这种方式使用。

@IBInspectable var buttonBorderWidth: CGFloat = 1.0 {
    didSet {
        updateView()
    }
}

func updateView() {
    // Usually there are more entries here for each IBInspectable
    self.layer.borderWidth = buttonBorderWidth
}
Run Code Online (Sandbox Code Playgroud)

但在某些情况下,他们会像这样使用 get 和 set

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

有人可以解释一下:每种情况下发生了什么以及如何选择使用哪一种?

swift ibdesignable ibinspectable

2
推荐指数
1
解决办法
2971
查看次数

@IBInspectable属性未显示在Interface Builder中

我有一个这样的类,并且此IB foo1在检查窗格中未显示该属性。

@IBDesignable
final class Foo: UIView {
    @IBInspectable var bar1 = CGFloat(0) 
}
Run Code Online (Sandbox Code Playgroud)

怎么了?

(Xcode 10.1)

xcode interface-builder ibdesignable ibinspectable

2
推荐指数
1
解决办法
102
查看次数

IBInspectable 变量值在界面生成器和模拟器中没有改变

我正在创建自定义平行四边形视图,并且视图使用默认偏移值渲染得很好。但是当我改变 ib 的偏移值时它不起作用

@IBDesignable class CustomParallelogramView: UIView {


    @IBInspectable var offset: Float = 10.0

    var path = UIBezierPath()

    lazy var shapeLayer: CAShapeLayer = {
        let layer = CAShapeLayer()
        layer.path = path.cgPath
        return layer
    }()

    override init(frame: CGRect) {
        super.init(frame:frame)
        drawParallelogram()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder:aDecoder)
        drawParallelogram()
    }

    override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()
        drawParallelogram()
    }
    override func layoutSubviews() {
        super.layoutSubviews()
        updateFrame()
    }



    func drawParallelogram() {
        print(offset)
        path.move(to: CGPoint(x: bounds.minX + CGFloat(offset), y: bounds.minY))
        path.addLine(to: CGPoint(x: bounds.maxX, y: bounds.minY))
        path.addLine(to: …
Run Code Online (Sandbox Code Playgroud)

uiview swift ibinspectable

2
推荐指数
1
解决办法
1362
查看次数

如何创建像 IBInspectable 属性这样的段控件?

在此处输入图片说明我想创建像段控件这样的自定义控件但我无法理解如何创建这种SegmentIBInspectable 属性。我的意思是它的元素根据Segments. 据我所知,不支持@IBInspectable.

ios swift ibdesignable ibinspectable swift3

1
推荐指数
1
解决办法
1245
查看次数

为什么标记为@IBInspectable的属性不起作用?

我按照这里的教程创建了一个可检查和可设计的视图.我只想添加边框颜色,边框宽度和圆角边框功能UIView.

我成功地展示了这些属性.但是无论我在故事板上设置什么,结果仍然就像他们不在那里一样.没有边框,即使我将边框设置为宽2和黑色.它没有在故事板和运行时显示.我已将边框设置为2宽度,但在运行时,我在didViewLoad处打印边框宽度值,结果为0.可能出现什么问题?

@IBDesignable extension view: UIView {

    @IBInspectable var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
            layer.masksToBounds = newValue > 0
        }
    }

    @IBInspectable var borderWidth: CGFloat {
        get {
            return layer.borderWidth;
        }
        set {
            layer.borderWidth = borderWidth;
        }
    }

    @IBInspectable var borderColor: UIColor? {
        get {
            return UIColor(CGColor: layer.borderColor!);
        }
        set {
            layer.borderColor = borderColor?.CGColor
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

@IBDesignable class BOView: UIView {

    @IBInspectable var cornerRadius: CGFloat { …
Run Code Online (Sandbox Code Playgroud)

ios swift ibdesignable ibinspectable

0
推荐指数
1
解决办法
2606
查看次数

使用@IBInspectable Swift 4.2 的 UIView 上的 CornerRadius 和阴影

是否可以同时拥有CornerRaduis和 阴影UIView

我建立了一个自定义类的UIView,它使用@IBInspectable设置cornerRadiusaddShadow可以是truefalse。当我设置cornerRadius阴影不显示时,如果我拿走cornerRadius它,它会再次显示。提前致谢!

自定义类:

import UIKit

class CustomUIView: UIView {

    override func awakeFromNib() {
        self.layer.masksToBounds = cornerRadius > 0
    }

    @IBInspectable var useDefaultRadius: Bool = true {
        didSet {
            self.layer.masksToBounds = cornerRadius > 0
        }
    }

    @IBInspectable var cornerRadius: CGFloat {
        set {
            self.layer.cornerRadius = newValue

        }
        get {
            if (useDefaultRadius) {
                    // Set default radius
                    self.layer.cornerRadius = 23
                } …
Run Code Online (Sandbox Code Playgroud)

swift ibinspectable

0
推荐指数
1
解决办法
2372
查看次数