Sse IBInspectable 和 IB_DESIGNABLE 错误更改未显示在情节提要中?

Posted

技术标签:

【中文标题】Sse IBInspectable 和 IB_DESIGNABLE 错误更改未显示在情节提要中?【英文标题】:Sse IBInspectable and IB_DESIGNABLE Bug changes not show in storyboard? 【发布时间】:2016-02-25 02:38:49 【问题描述】:

我阅读了这篇文章IBInspectable / IBDesignable 和流程步骤,但我发现更改没有立即呈现在情节提要上。有人知道为什么吗? 我的 Xcode 版本:7.1

我的主要代码:

ViewController.h

#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface ViewController : UIViewController


@end

UIView+CornerRadius.h

#import <UIKit/UIKit.h>

@interface UIView (CornerRadius)
@property(nonatomic ,assign) IBInspectable CGFloat cornerRadius;
@end

UIView+CornerRadius.m

#import "UIView+CornerRadius.h"

@implementation UIView (CornerRadius)

-(void)setCornerRadius:(CGFloat)cornerRadius 
    self.layer.cornerRadius = cornerRadius;
    self.layer.masksToBounds = cornerRadius > 0;


-(CGFloat)cornerRadius 
    return  self.layer.cornerRadius;


@end

【问题讨论】:

【参考方案1】:

我已经在 Xcode 中测试了你的代码,我发现如果你将 storyboard 上的视图声明为 UIView+CornerRadius 的实例,它真的不起作用。但是如果你创建一个 UIView 或你的 UIView+CornerRadius 类别的子类,并将视图声明为这个子类,它就可以正常工作。

我将附上截图来演示:

【讨论】:

哦,分类里的代码和你的一模一样。而且你不需要在UIView的子类CornerView中写任何代码

以上是关于Sse IBInspectable 和 IB_DESIGNABLE 错误更改未显示在情节提要中?的主要内容,如果未能解决你的问题,请参考以下文章

将 IBDesignable 和 IBInspectable 与 UIViewController 一起使用

IBInspectable 属性值未在 xib 中更新

配置 @IBInspectable 属性检查器控件

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

IB_DESIGNABLE 和 IBInspectable 的用法

具有 IBInspectable 颜色属性的子类 - 无法覆盖