如何设置与故事板一个UIView初始化的大小?(How can I set the size of

2019-09-23 14:44发布

我目前使用的是iOS 6.0。

我有一个自定义UIView ,需要具备一定的规模。 如果以编程方式初始化的观点,并将其添加它的罚款。 但是,我找不到一个地方,我可以设置在故事板视图的大小。

在故事板设置其大小不工作,因为情节提要认为它是空的,并设置它的大小为零。 设置其大小viewDidLoadviewDidAppear不起作用,因为以后的大小将被覆盖_applyISEngineLayoutValue

Answer 1:

你可以在你的界面生成器。 打开,你有你的观点的故事板,并打开实用程序菜单:

然后,你可以选择一个按钮,看起来像在公用事业菜单的顶部标尺:

在该菜单中,您可以设置视图的大小,你想如何扩大。

另外,请确保您的类检查设置好的你的类的观点:

从图片令牌这个网站 。

最后,确保你覆盖initWithFrameinitWithCoder方法:

- (id)initWithFrame:(CGRect)frame {
    return [super initWithFrame:frame];
}

//Needs to be overrided when you set your size in interface builder
- (id)initWithCoder:(NSCoder *)aDecoder {
    return [self initWithFrame:[self frame]];
}


Answer 2:

我面临同样的问题,我想简单的答案是:用故事板的时候可以不依赖于视图的init方法的框架或边界上。

当你的观点得到SEGUE初始化,它会调用的initWithCoder:方法,而不是其他的init方法,因为它是从的.xib文件反序列化视图对象。 故事板之前,框架和范围将由时间来设定的initWithCoder:被称为,但似乎不再是故事板的情况 - iOS的代码设置这些值后。

我用了几个解决方法,根据不同的情况:

  1. 如果我事先知道该视图的大小(例如仅支持一个大小特产视图)我将在我的initWithCoder自己框:方法。

  2. 如果我不知道该视图的大小,我推迟的具体大小事初始化,直到我的视图的layoutSubviews方法被调用。

  3. 如果是更方便,我有时只是做明确的尺寸专用的初始化在我看来的视图控制器。 (不漂亮,但有时快速和容易。我不感到自豪。)



Answer 3:

我有同样的问题,因为你,当我选择视图并切换到属性检查器中,设置“模拟度量标准”如下,我可以调整大小的尺寸检查的观点。

请确保大小设置为“任意格式”或“无”



文章来源: How can I set the size of a UIView init with storyboard?