标签: ibdesignable

Swift 4中的Round Corners UIView

在swift 3中我可以做这样的事情让我的UIView转角:

import UIKit

@IBDesignable
class DesignableView: UIView {
}

extension UIView {

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

在故事板上我可以简单地改变这个: 性能

目前我正在设计一个"Build failed",但Idk为什么.我正在研究swift 4和Xcode 9.

为什么它不能在swift 4中运行?

uiview ios swift ibdesignable swift4

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

IBDesignable UIButton子类

我正在尝试实现一个简单的UIButton子类,它是IBDesignable.我希望能够从Interface Builder为控件的每个状态设置颜色.我知道这可以通过IBInspectable关键字实现.我在状态属性上使用KVO时遇到IB崩溃问题.IBDesignable调试器在deinit上崩溃.有谁知道我如何与KVO和IBDesignable一起工作?

@IBDesignable
class UIButtonActionButton: UIButton {

    @IBInspectable var defaultColour: UIColor = UIColor.blueColor() {
        didSet {
            self.setNeedsDisplay()
        } 
    }

    @IBInspectable var selectedColour: UIColor = UIColor.blueColor()

    @IBInspectable var disabledColour: UIColor = UIColor.grayColor()

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self._setup()
    }

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


    private func _setup(){
        self.addObserver(self, forKeyPath: "state", options: NSKeyValueObservingOptions.New, context: nil)
        self.layer.cornerRadius = 5.0
        self.layer.masksToBounds = true
    }

    override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
        self.setNeedsDisplay() …
Run Code Online (Sandbox Code Playgroud)

xcode xcode6 ibdesignable

8
推荐指数
2
解决办法
8143
查看次数

Swift中的IBDesignable和多个目标

看起来像IBDesignable有多个目标和swift模块的一些问题.在我添加新目标(我的应用程序现在有2个目标,例如卖方买方)后,我的StoryBoard开始停止构建警告:

Storyboard: warning: IB Designables: Using class UITextField for object with  
custom class because the class _TtC15******Buyer11HCTextField does not exist
Run Code Online (Sandbox Code Playgroud)

我认为,designables编译器无法以某种方式找到正确的*sw​​ift**模块.
有任何建议如何解决这个问题?

图:

在此输入图像描述

我正在使用Xcode 7.0.1Swift2

interface-builder ios ibdesignable xcode7 swift2

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

为什么我的IBDesignable不允许我在我的自定义UIButton上使用setImage?

layoutSubviews我调用setImage()并传递它UIImage但它从未出现在Interface Builder中,但它总是出现在我运行程序时.

xcode uiview ios ios8 ibdesignable

7
推荐指数
2
解决办法
1953
查看次数

清除IBDesignable视图具有黑色背景

我正在尝试创建一个IBDesignable类,它在Interface Builder中呈现时可以具有透明背景.到目前为止,我已经有了不透明的黑色背景.我已经设置了一个简单的问题演示:

我在Interface Builder中放置了一个UIView.您无法看到它,因为它的背景很清晰.这应该是场景应该是什么样子.

界面构建器中空场景的屏幕截图

这个屏幕截图的唯一区别是我将之前不可见视图的类设置为'DesignableView'.

Interface Builder场景的屏幕截图,中间有一个黑框

以下是DesignableView类的完整实现:

#import <UIKit/UIKit.h>

IB_DESIGNABLE
@interface DesignableView : UIView
@end

@implementation DesignableView
- (void)drawRect:(CGRect)rect {
    //rendering code goes here
}
@end
Run Code Online (Sandbox Code Playgroud)

有没有办法为IBDesignable视图提供正确,透明的背景?

objective-c interface-builder ios swift ibdesignable

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

来自外部框架的自定义视图在Interface Builder中不起作用

我在这个网站上寻找一些解决方案,我发现这个答案并没有解决我的问题.

如何在Interface Builder中使用来自外部框架(扩展名为.framework的文件)的自定义UIView,而不使用CocoaPods,也不将此项目添加为项目的目标.

假设我有一个单独的项目:Cocoa Touch Framework项目模板,我想在我的其他项目中使用它.我将它添加到嵌入式二进制文件链接框架和库中,我可以在Objective-C中使用它:

@import MyFramework;
Run Code Online (Sandbox Code Playgroud)

在斯威夫特:

import MyFramework
Run Code Online (Sandbox Code Playgroud)

但是从未知的原因,Interface Builder没有看到使用@IBDesignable的自定义视图有趣的想法是当我的项目运行时,外部框架的自定义视图正在显示.唯一的问题是在Interface Builder的设计过程中不显示任何内容.

我没有使用CocoaPods,我不想将我的框架项目作为Target嵌入,因为这是许多项目的通用框架.如何将此外部项目/框架附加到我的项目中,以便Interface Builder可以正常工作.当我使用Cocoa Touch Framework项目模板创建目标,以便此框架在我的项目"内部"时,Interface Builder在设计时和运行时期间按预期工作.

有什么方法可以将我的外部项目作为目标附加到其他项目?

xcode interface-builder ios-frameworks ibdesignable xcode7

7
推荐指数
0
解决办法
598
查看次数

IB Designables:无法更新自动布局状态:代理引发了"NSInternalInconsistencyException"异常:无法在bundle中加载NIB

我使用stroyboard从xib创建预览,但是我收到了以下错误:

file:///Users/miaios/Desktop/Demo/XibDemo/XibDemo/Base.lproj/Main.storyboard: error: IB Designables: Failed to update auto layout status: The agent raised a "NSInternalInconsistencyException" exception: Could not load NIB in bundle: 'NSBundle </Users/miaios/Library/Developer/Xcode/DerivedData/XibDemo-hkqfrktawlqpokczkfobsrmkfxqy/Build/Intermediates/IBDesignables/Products/Debug-iphonesimulator/XibDemo.app> (loaded)' with name 'HXXibView'

file:///Users/miaios/Desktop/Demo/XibDemo/XibDemo/Base.lproj/Main.storyboard: error: IB Designables: Failed to render instance of HXXibView: The agent threw an exception.
Run Code Online (Sandbox Code Playgroud)

码:

#import <UIKit/UIKit.h>

IB_DESIGNABLE

@interface HXXibView : UIView

@property (nonnull, nonatomic, strong) IBInspectable NSString *text;
@property (weak, nonatomic) IBOutlet UILabel *label;

@end

@implementation HXXibView

#pragma mark - Init Methods
- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame]; …
Run Code Online (Sandbox Code Playgroud)

objective-c ios ibdesignable

6
推荐指数
0
解决办法
1397
查看次数

@IBDesignable视图不会在Interface Builder中绘制背景颜色

我很好奇为什么不设置backgroundColor为红色?

@IBDesignable class CustomLabel: UIView {

  let view = UIView()

  func setup() {
    backgroundColor = UIColor.red
    view.backgroundColor = UIColor.green
    view.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
    addSubview(view)
  }

  override init(frame: CGRect) {
    super.init(frame: frame)
    setup()
  }
  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    setup()
  }
}
Run Code Online (Sandbox Code Playgroud)

这是结果.

在此输入图像描述

这就是我期望的样子.

在此输入图像描述

interface-builder ios swift ibdesignable

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

我们如何创建 IBInspectable 像复选标记?

我创建了很多 IBInspectable。但是今天,我观察到 Xcode 有一些像这样的属性:

在此处输入图片说明

在链接中,我标记了矩形框。我想创建这样的自定义 IBInspectable。我不知道这可能还是不可能。

任何帮助,将不胜感激。

xcode ios swift ibdesignable ibinspectable

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

即使在指定 Bundle 时,在 IBDesignable 视图中使用资产目录中的命名颜色也会使 IB 崩溃

当引用使用UIColor(named:)Interface Builder创建的颜色时,由于颜色为 nil,它会崩溃。

最初我认为这是因为 IB 在错误的包中寻找颜色,但在指定要在 IB 中查找的包后仍然找不到颜色。

这在设备/模拟器上运行时运行良好。

extension UIColor {

    // MARK: - Oranges
    static let tangerine = UIColor(named: "Tangerine", in: Bundle(for: AppDelegate.self), compatibleWith: nil)!
    .....
}
Run Code Online (Sandbox Code Playgroud)

再深入研究一下,IB 所查看的 Bundle 似乎包含对颜色和图像的引用,因此您希望它能够工作..?

po Bundle(for: AppDelegate.self)
NSBundle </Users/me/Library/Developer/Xcode/DerivedData/MyApp-ddspmruccrhrxhbawgwawhzkrrts/Build/Intermediates.noindex/IBDesignables/Products/Debug - DEV-iphonesimulator/MyApp.app> (loaded)`
Run Code Online (Sandbox Code Playgroud)

xcrun --sdk iphoneos assetutil --info pathToAsserts.car

  {
"AssetType" : "Color",
"Color components" : [
  1,
  1,
  1,
  1
],
"Colorspace" : "srgb",
"Idiom" : "universal",
"Name" : "Marmalade",
"Scale" : 1
},
{
"AssetType" : "Image",
"BitsPerComponent" …
Run Code Online (Sandbox Code Playgroud)

interface-builder uicolor ios swift ibdesignable

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