标签: ibdesignable

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

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

ios swift ibdesignable ibinspectable swift3

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

具有动态约束的 IBDesignable 视图:渲染时错位的子项

我正在尝试构建(以编程方式)一个新视图并使用IBDesignable属性来简化此过程并在故事板而不是白色矩形中显示视图。

这是一个包含两个子视图的类:UILabelUIImageView. 我将它们动态添加到父视图并为它们设置了几个约束:

import UIKit

@IBDesignable
class ChoiceView: UIView {

    enum ChoiceState {
        case empty, chosen
    }

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

    override init(frame: CGRect) {
        super.init(frame: frame)
        setupViewForState(.empty)
    }

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func layoutSubviews() {
        super.layoutSubviews()
    }

    private func setupViewForState(_ state: ChoiceState) {
        guard case .empty = state else { return } // single case for now

        let placeholder = UILabel()
        let choiceImage = UIImageView(image: …
Run Code Online (Sandbox Code Playgroud)

xcode ios xcode-storyboard swift ibdesignable

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

@IBDesignable UIView未在情节提要中调用init

我有一个UIView@IBDesignable

@IBDesignable
class MyView: UIView {

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

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

    private func sharedInit(){
        translatesAutoresizingMaskIntoConstraints = false
        backgroundColor = .blue
    }

}
Run Code Online (Sandbox Code Playgroud)

当我将其放置UIView在情节提要中并MyView在“ 身份”检查器中将其类分配给时,UIView仍然具有默认的背景色。为什么其背景颜色不在UIColor.blue情节提要中?而且,请问我该怎么做呢?

谢谢你的帮助。

ios uistoryboard uibackgroundcolor swift ibdesignable

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

为什么标记为@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
查看次数