2013-05-03 24 views
0

我想知道是否有任何方式自动和编程生成不同大小的屏幕,如他们在故事板中完成帧。在故事板中,只要自动调整掩码设置正确,视图的帧就会动态生成以填充整个屏幕。当按下故事板中的'应用替代设备外观因素'按钮并且屏幕大小&内容动态增长或缩小时,可以显示此内容。但是,每当我尝试以编程方式创建视图时获得相同的行为时,该框架不会动态缩放。有没有什么方法可以像基于当前设备框架的Storyboard一样自动生成这个框架?是否有任何优雅的解决方案,以编程方式为不同大小的设备创建视图,而无需手动管理每个设备的静态帧?有没有人有他们可以分享的任何资源或他们可以提供的例子?自动程序化CGRect框架为iPhone 5喜欢故事板

谢谢。我很感谢帮助。

回答

0

不是静态设置框架,而应根据区域的大小(例如高度)放置框架。例如,如果设备高度是568而不是480,那么这将创建视图并将其从底部放置50并且还伸展大小。

someView.frame = CGRectMake (0,someView.frame.size.height + (self.view.frame.size.height - 50),100 + (480 - self.view.frame.height),100); 
0

如果你的目标是iOS6,你可以使用Auto Layout。如果你不是针对iOS6的(或者你不想混淆自动布局),你可以将UIView的autoResizingMask属性设置为任何你想要的。即view.autoResizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

+0

感谢您的回复。我目前正在以编程方式设置视图的自动调整屏蔽,但这并不会在第一次绘制屏幕时改变视图在屏幕上的位置。这只会影响视图的框架,只要其父边界发生变化,就像设备旋转一样。 – Krejko 2013-05-03 15:36:29

+0

如果要在视图控制器的viewDidLayoutSubviews之后添加视图,或者已经为较大的屏幕配置了超级视图,则必须调整视图的框架。如果视图控制器是在3.5英寸的IB中设计的,并且在设置autoResizingMask时将视图添加到viewDidLoad中,它将自动布局它 您也可以在viewWillLayoutSubviews中添加视图并计算视图控制器视图的高度以使你的调整。 – CEarwood 2013-05-03 20:04:30