我目前使用的是iOS 6.0。
我有一个自定义UIView
,需要具备一定的规模。 如果以编程方式初始化的观点,并将其添加它的罚款。 但是,我找不到一个地方,我可以设置在故事板视图的大小。
在故事板设置其大小不工作,因为情节提要认为它是空的,并设置它的大小为零。 设置其大小viewDidLoad
或viewDidAppear
不起作用,因为以后的大小将被覆盖_applyISEngineLayoutValue
。
我目前使用的是iOS 6.0。
我有一个自定义UIView
,需要具备一定的规模。 如果以编程方式初始化的观点,并将其添加它的罚款。 但是,我找不到一个地方,我可以设置在故事板视图的大小。
在故事板设置其大小不工作,因为情节提要认为它是空的,并设置它的大小为零。 设置其大小viewDidLoad
或viewDidAppear
不起作用,因为以后的大小将被覆盖_applyISEngineLayoutValue
。
你可以在你的界面生成器。 打开,你有你的观点的故事板,并打开实用程序菜单:
然后,你可以选择一个按钮,看起来像在公用事业菜单的顶部标尺:
在该菜单中,您可以设置视图的大小,你想如何扩大。
另外,请确保您的类检查设置好的你的类的观点:
从图片令牌这个网站 。
最后,确保你覆盖initWithFrame
和initWithCoder
方法:
- (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]];
}
我面临同样的问题,我想简单的答案是:用故事板的时候可以不依赖于视图的init方法的框架或边界上。
当你的观点得到SEGUE初始化,它会调用的initWithCoder:方法,而不是其他的init方法,因为它是从的.xib文件反序列化视图对象。 故事板之前,框架和范围将由时间来设定的initWithCoder:被称为,但似乎不再是故事板的情况 - iOS的代码设置这些值后。
我用了几个解决方法,根据不同的情况:
如果我事先知道该视图的大小(例如仅支持一个大小特产视图)我将在我的initWithCoder自己框:方法。
如果我不知道该视图的大小,我推迟的具体大小事初始化,直到我的视图的layoutSubviews方法被调用。
如果是更方便,我有时只是做明确的尺寸专用的初始化在我看来的视图控制器。 (不漂亮,但有时快速和容易。我不感到自豪。)
我有同样的问题,因为你,当我选择视图并切换到属性检查器中,设置“模拟度量标准”如下,我可以调整大小的尺寸检查的观点。
请确保大小设置为“任意格式”或“无”