2014-03-27 64 views
1

嘿,我的iOS应用程序非常简单,而不是搞乱Xcode的自动布局功能,有没有一种方法可以通过编程来为每个分辨率设置屏幕大小。我正在使用Xcode的故事板功能,但我似乎无法弄清楚这一点。我GOOGLE了它相当广泛,我发现唯一的事情是编辑>解决自动布局问题>重置为...iOS上的自动缩放

这效果很好,除了它总是挤压我的图像。我试图在他们身上设置一个强制高度,然后一切都变得疯狂了!

那么是否有任何技术将视图中的所有内容缩小10%?

感谢,Krkto

-BTW屏幕是一个UIView

CNC中还当我设置了自动版式为“重置为建议的约束上的......”,我称之为滚动视图的动画它会缓慢地滚动资源,而背景以正常方式上升。

+0

这是什么屏幕?一个UIView? – Roecrew

+0

感谢Jino,愚蠢的错误lol – Krtko

+0

是的它的一个UIView – Krtko

回答

1

以下是我将如何使用AutoLayout进行操作。

  • 设置你的IB /故事板
  • 设置视图的约束

由于要缩放子视图 - 设置其高度和宽度的限制。

所以 - 宽度约束: 通过

  • CTRL +拖了UIView内做到这一点从左至右(反之亦然)

停止拖动一个弹出会显示与两个选项:选择宽度。

所以同样的高度 - 只需按住CTRL +从你想缩放的UIView拖动,从上到下或从下到上,当弹出窗口显示时,单击高度。

现在您已经设置了约束条件 - 在左侧面板中找到它们,显示IB/Storyboard的所有UIView对象。他们会在你让他们在同一UIView的

现在,CTRL +将它们拖动到您的视图控制器 - 这将创造NSLayoutConstraint`IBOutLets

例:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint; 

现在 - 当你想要更新高度约束(和宽度) - 在代码中,做这样的事情:

self. heightConstraint.constant = 10; // new Size 

[self.view layoutSubviews]; //Causes setNeedsDisplay to be called on all subviews in UIView 

这就是它的全部。你可以把这段代码放在一个UIView动画中,它也会很好地动画。只需使用一些简单的数学来计算任何你想要的大小。

如果你看看IB/Storyboard - 你会看到Xcode左边的约束被显示,它会给你当前的常量值。

例子:

enter image description here

希望这有助于。

1

你缺少的是什么限制。 raywenderlich on autolayout

本教程提供了我相信您的需求。

+0

谢谢,它的一个漂亮的教程。但我会再来一次。 TBH比我想要的更复杂。我只是希望它能够从一个分辨率到另一个分辨率。我想我来自游戏开发背景,对我来说这似乎很标准。 – Krtko

+0

我也是这样。我总是远离汽车布局。我总是以编程方式制作我的东西。这是更多的打字,但我觉得更多的控制方式。 – Roecrew

+0

必须有一个更简单的方法。是的,我觉得你,但能够拖放东西是一件了不起的事情。 – Krtko

0

它看起来像@krtko真正想要的是关闭自动布局,大小类,并将应用程序进入自动缩放模式。对于更简单的屏幕,这只是处理四种屏幕尺寸比自动布局更简单的方法。 “支撑和弹簧”(Autoresizing)功能仍然可以用来定义在屏幕房地产增长或缩小时发生的情况(特别是在iPhone 4/iPhone-on-iPad模式下)。

关键是要使用info.plist中的UILaunchImages键并指定只有320x480和320x568的图像。这使应用程序进入一种模式,其中6和6+尺寸自动显示为iPhone 5的放大。您失去了高分辨率的好处,但获得了大量时间,无需使用AutoLayout并在所有分辨率下提供大量图像文件。非常适合MVP和快速原型。

https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW28

注意,在这种环境下,助理编辑/预览功能不能正常工作;它显示了如果通过通常的缩放机制渲染视图的样子,而不是编译时使用的自动缩放。模拟器将显示正确的布局。

enter image description here