9 bundle storyboard ios ibdesignable ibinspectable
我正在尝试在我的UIButton中使用IB Designable和IB Inspectable,但似乎有一些错误.
在问题导航器中,捆绑文件:
故事板: IB Designables:无法更新自动布局状态:无法从路径加载designabled(null)
所以我想知道是否有任何配置可以在静态库或类似的东西中使用它?
这是
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface CustomUIButton : UIButton
@property (nonatomic) IBInspectable int cornerRadius;
@end
Run Code Online (Sandbox Code Playgroud)
我想要实时渲染的自定义按钮位于视图控制器内
不幸的是,它不能IBDesignables与静态库(或静态框架)一起使用。
这不是一个很好的答案,但我想说明原因。
Interface Builder 加载类以显示为可设计对象的方式似乎是通过实际动态加载您创建的动态框架(而不是您的应用程序的二进制文件),并直接使用这些类(在使用 Objective-C 运行时更改它们之后少量)。
您可以看到 Interface Builder 没有加载您的应用程序,而只是通过以下步骤加载各个框架:
IBDesignableIBDesignable类IBDesignables,您可以看到仅构建了您的框架目标。界面构建器实际上使用dlopen手动加载您的框架。您还可以看到,为了在构建框架时实现这一点,Interface Builder 实际上RPATH在您的二进制文件中添加了 2秒,因此可以在自定义路径中找到依赖项(您可以使用 来查看otool -L frameworkbinary)。静态库无法使用这种加载二进制文件的方法。
就其价值而言,我认为最好的解决方法是构建动态框架,而不是静态库,但仅适用于IBDesignable构建。您必须做一些配置工作才能做到这一点,并且围绕 Xcode 进行这项工作并不容易,但是如果您尝试一下,您可以使用构建路径或环境来区分IBDesignable构建与“正常”构建。
Edg*_*gar -2
编辑:IB Designable 和 IB Inspectable 似乎不适用于静态库,因此如果您使用静态库,请考虑使用动态框架(仅限 iOS 8)或将组件移至静态库之外(如果可能)。
对于与 Cocoapods 相关的问题,请使用以下解决方案:
这与这个问题有关。
这是解决方案:
1)安装Cocoapods(0.36.0.beta.1)或更高版本;
2)添加use_frameworks!到您的Podfile
在这里查看更多内容。
| 归档时间: |
|
| 查看次数: |
1527 次 |
| 最近记录: |