【问题标题】:adjusting custom uiview nib size to the size of the uiview in interface builder在界面生成器中将自定义 uiview 笔尖大小调整为 uiview 的大小
【发布时间】:2014-09-19 23:10:58
【问题描述】:

我正在尝试使用界面生成器创建自定义对象。我创建了对象,我的计划是将 UIView 添加到我希望对象驻留的主视图控制器中。因此,我将一个 UIView 对象拖入 IB 并前往身份检查器。我将其更改为我的自定义 UIView 的名称。我希望视图调整其框架大小以适应主视图控制器中对象的框架,但由于某种原因,事实并非如此。它只是看起来是白色的。我尝试以编程方式将其添加到视图中,这很有效,但我希望能够从界面构建器中完成所有操作,以实现自动布局。有没有办法做到这一点?我已经看到它使用 Facebook 登录按钮完成了。只需将 UIView 添加到视图控制器,将其放在您想要的位置,更改身份检查器中的类类型,它将符合该大小,同时显示 facebook 登录按钮。

【问题讨论】:

    标签: ios objective-c uiview


    【解决方案1】:

    你如何初始化你的 UIView 子类?使用initWithFrame:?在界面生成器上创建的 UIViews 由 initWithCoder: 方法实例化,请尝试使用该方法。在我以前的实现中,这就是问题所在。

    【讨论】:

    • 所以我不应该在主 VC 中添加任何初始化代码?就在自定义对象的 nib 文件中,对吗?我添加了 initWithCoder 但它没有用。还是白的。该方法有什么具体的内容吗?这是我所拥有的: - (id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder];返回 [self initWithFrame:[self frame]]; } 另外,我应该包括 NSCoding 委托还是什么?
    • 更好,你有例子吗?
    • 对不起,我没有看到你之前的评论。这就是问题所在。您正在使用initWithCoder: 初始化组件,然后使用initWithFrame: 再次对其进行初始化。尝试用简单的return self; 替换您的return [self initWithFrame:[self frame]];。 Inits 应始终返回 self 对象。
    • 它仍然会出现一个空白的白色视图。我不需要在主 VC 中添加任何其他代码,对吗?我希望我知道为什么这不起作用:S
    • VC 中不需要任何其他代码。你有你的drawRect: 工作吗?也许布局本身是正确的,但您只是将其绘制为空白,或者在其裁剪边界之外绘制,甚至根本不绘制。从一些简单的绘图开始,比如用简单的颜色填充 CGRect 的背景。
    猜你喜欢
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 2016-07-15
    相关资源
    最近更新 更多