标签: ibdesignable

IBInspectable UIView属性

我可以让我的UIView @property可以检查吗?

@interface Superview : UIView 
    @property (nonatomic, weak, readonly) IBInspectable UIButton *stopButton;
    @property (nonatomic, weak, readonly) IBInspectable PKCircleProgressView *circleProgressView;
@end
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个可设计的视图PKCircleProgressView,我希望它可以从IB编辑.此外,我创建了另一个可设计的视图,其中包含PKCircleProgressView作为子视图,我希望它也可以编辑.

如果我在IB中使用Superview,有没有办法编辑circleProgressView的属性?

我只想出一个想法,为两个视图创建一个通用协议,并实现如下方法:

- (void)setProgress:(CGFloat)progress {
    self.circleProgressView.progress = progress;
}
Run Code Online (Sandbox Code Playgroud)

但是对每个属性都不容易,特别是如果我想创建另一个包含我的Superview的View.

interface-builder uiview ios ibdesignable

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

UIAppearance 覆盖 UILabel 上的自定义 textColor

我使用以下方法在我的应用程序委托中设置 UILabel 外观:

UILabel.appearance().textColor = UIColor.white
Run Code Online (Sandbox Code Playgroud)

我还有一个自定义 UIView 子类,其中包含 UILabel 以及一些其他元素(此处省略):

@IBDesignable
class CustomView: UIView {
    private let descriptionLabel = HCLabel()

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

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

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

    private func setup() {
        self.descriptionLabel.textColor = UIColor.black

        // ... other things not related to descriptionLabel
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我CustomView在故事板中实例化,一切都会正常工作。但是,如果我在代码中实例化它,则descriptionLabel是白色(外观颜色),而不是黑色(我设置的颜色)。这里发生了什么?我的理解是,如果我设置自定义颜色,则不会使用外观颜色。

interface-builder uilabel uiappearance swift ibdesignable

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

IBDesignable视图未呈现

我有一个简单的@IBDesignable视图,已将其指定为macOS故事板场景中的顶级视图的基类。例如:

@IBDesignable
class OvalView: NSView {
    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)

        NSColor.red.setFill()
        NSBezierPath(ovalIn: bounds).fill()
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,此视图看起来很好。但是这个可设计的视图没有在Interface Builder中呈现在我的场景中:

在此处输入图片说明

注意,仅当相关视图是场景的顶级视图时,此问题才会显现。如果我对子视图执行此操作,则效果很好:

在此处输入图片说明

macos xcode interface-builder swift ibdesignable

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

将UINavigationItem设为@IBDesignable

我想制作自定义UINavigationItem,并且可以在故事板中进行更改.我知道如何UIView使用@IBDesignable和定制@IBInspectable,但我的问题是UINavigationItem没有draw方法,required init?(coder aDecoder: NSCoder)很快就会被调用.

如何解决这个问题的最佳方法是什么?

uinavigationitem ios swift ibdesignable

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

带有Swift的Xcode 9中未显示IBDesignable UI

我尝试使用自定义的xib文件。但是这些UI并未显示在xcode的主视图控制器中。但是它会在运行应用程序时显示。我已经在类中添加了@IBDesignable。这是我所做的。

  1. 我创建了TestView.xib并添加了一些设计

  2. 我创建了TestView.swift

  3. 我在自定义类中使用TestView更新了TestView.xib的fileOwner

  4. 我将初始化代码添加到testView.swift

TestView.swift中的代码

import UIKit

@IBDesignable class DetailView: UIView {

override init(frame: CGRect){
    super.init(frame: frame)
    self.setup()
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
    self.setup()

}

func setup() {
    let view = Bundle.main.loadNibNamed("TestView", owner: self, options: nil)?.first as! UIView
    view.frame = self.bounds
    self.addSubview(view)
}

}
Run Code Online (Sandbox Code Playgroud)
  1. 并在MainViewController的UIView上添加了该链接,并使用自定义类名称链接到TestView。

  2. 之后,我运行该应用程序,可以从testView看到UI。仿真器图像和结果

  3. 但是我的自定义UI不在xcode的MainViewController中显示xcode视图控制器的图像

如何启用MainViewController中的自定义UI?谢谢

uiview ios swift ibdesignable xcode9

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

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
查看次数

如何找出哪个约束不起作用或产生问题

我已经为 UITableView 单元格创建了自定义视图。当应用程序运行并且填充 UITableView 时,我收到太多与设计相关的警告。让我快速分享我收到的设计日志

    [LayoutConstraints] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. 
    Try this: 
        (1) look at each constraint and try to figure out which you don't expect; 
        (2) find the code that added the unwanted constraint or constraints and fix it. 
(
    "<NSLayoutConstraint:0x600000a8c530 H:[UIView:0x7fcc025a6390]-(1)-|   (active, names: '|':UIView:0x7fcc025a5dc0 )>",
    "<NSLayoutConstraint:0x600000a8c620 H:|-(1)-[UIView:0x7fcc025a6390]   (active, names: '|':UIView:0x7fcc025a5dc0 )>",
    "<NSLayoutConstraint:0x600000a8cb20 H:|-(0)-[UIView:0x7fcc025a5dc0]   (active, names: '|':UITableViewCellContentView:0x7fcc025a58a0 )>",
    "<NSLayoutConstraint:0x600000a8cbc0 H:[UIView:0x7fcc025a5dc0]-(0)-|   (active, names: …
Run Code Online (Sandbox Code Playgroud)

iphone xcode ios swift ibdesignable

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

使用Swift 3.0中的IBDesignable在左侧和右侧使用图像的UIButton

如何使用IBDesignable在UIButton中使用文本在左侧和右侧显示左右图像?

我试图谷歌它找到任何答案,但没有找到任何明智的答案.我想通过故事板来做到这一点.请帮忙

要求输出:

输出图像

uibutton ios autolayout ibdesignable swift3

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

如何在Swift中制作可设计的UIImage

我是初学者。我想制作一个包含使Designable UIImage可用的代码的swift文件,所以我不会通过编码来编辑UI元素的显示,而只是在Interface Builder中通过将该swift文件分配给UI类来进行编辑。

我可以在UIButton中做类似的事情,例如,如果我想做圆角并向UIButton添加边框,我可以做这样的事情

import UIKit

@IBDesignable
class DesignableButton: UIButton {

    @IBInspectable var cornerRadiusOfButton : CGFloat = 0 {
        didSet {
            layer.cornerRadius = cornerRadiusOfButton
        }
    }

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

    @IBInspectable var borderColor: UIColor? {
        set {
            guard let uiColor = newValue else { return }
            layer.borderColor = uiColor.cgColor
        }
        get {
            guard let color = layer.borderColor else { return nil }
            return UIColor(cgColor: color)
        }
    } …
Run Code Online (Sandbox Code Playgroud)

uiimageview uiimage ios swift ibdesignable

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