【问题标题】:Subview resizing at runtime - XCode 4.5.1 iOS子视图在运行时调整大小 - XCode 4.5.1 iOS
【发布时间】:2012-11-05 02:02:45
【问题描述】:

我正在尝试向单视图 iPhone 应用程序添加子视图。我将一个视图拖到主视图上,设置参数:x=180, y=20, Width=120, Height=120,Xcode 在屏幕右上角附近显示一个漂亮的正方形。当我在模拟器或设备上运行应用程序时,正方形变成了矩形;我估计高度值大约是 Xcode 中显示的大小的 1/5,而宽度保持不变。

我尝试降低垂直约束的优先级,但没有任何运气。

对我在这里缺少的任何想法表示赞赏!

【问题讨论】:

  • 如果在 Interface Builder 中同时固定高度和宽度会发生什么? (为此,在选中视图的编辑器菜单下查看。)您应该能够添加约束,指定视图的高度和宽度都固定为 120,您可以将这些优先级调整为 1000(“必需")。
  • 这行得通 - 非常感谢蒂姆!!

标签: ios xcode view subview


【解决方案1】:

我的猜测是您已经创建了一个新项目(或现有项目中的新 xib),现在您正在 iPhone 4S 或更早版本上测试该应用程序。但默认情况下,Xcode 4.5(或更高版本)会创建一个新的 iPhone xib,其顶层视图的大小适用于屏幕更高的 iPhone 5。当您在屏幕较小的设备上(或在配置为此类设备的模拟器中)运行您的应用时,顶级视图会缩小以适应其子视图并调整其大小。

如果您使用自动布局,则可以更改子视图的弹簧和支柱,以使视图的宽度和高度是固定的,并且其左右边距是灵活的。

如果您正在使用自动布局,则需要通过更改子视图上的约束来做同样的事情。

更新

如果您想更改 Xcode 在 xib 中显示顶级视图的大小,请选择该视图(或其视图控制器,如果它在 xib 中有一个)。然后选择 View > Utilities > Attributes Inspector。在 Attributes Inspector(Xcode 窗口的右侧)的 Simulated Metrics 部分下,将 Size 弹出窗口更改为 Retina 3.5 Full Screen。

请记住,如果您这样做,并且您没有修复 springs'n'struts 或约束,那么当您在 iPhone 5 上运行应用程序时,您将遇到相反的问题:顶级视图将被拉伸以适应屏幕,并且将其子视图的大小调整得更大。

【讨论】:

  • Rob - 感谢您的解释。确实是我正在测试的 4S,主视图尺寸(已锁定)大于 4S 屏幕。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多