0

似乎很容易,但我就是无法正确设置这个准系统!请注意,我不想通过代码添加约束,而是通过 IB 完成所有操作:

  1. 故事板中的一个视图控制器,其主视图和一个集合视图作为主视图的子视图
  2. 我想设置它,以便在加载视图控制器时,其主视图调整为设备屏幕尺寸(3.5 对 4,因此 320 x 480 对 320 x 568)。并且集合视图也应该调整大小以占据其父视图定义的整个区域。

我做了什么:

  1. 使用带有主视图的新视图控制器创建了一个新的故事板
  2. 创建集合视图作为主视图的子视图。
  3. 将集合视图的大小设置为与其在 IB 中的父级相同的大小(在编辑时为 4 英寸格式)。
  4. 我将集合视图的前导、顶部、尾随和底部约束相对于超级视图设置为 0。我假设这意味着“调整大小以使间距约束保持不变”,因为它们都是 0,这意味着调整大小以适应整个超级视图区域。
  5. 在视图控制器代码中,我确保它与集合视图一起完成数据源/委托。也就是说,collection view 正在加载单元格,并且内容大小的高度总是大于设备屏幕,所以无论 collection view 是全屏的,总会有要滚动的内容。

我的期望: 在应用程序启动和视图加载时,视图控制器的主视图及其子视图(集合视图)都应为 320x480 或 320x568,具体取决于设备屏幕尺寸。

实际发生的情况: 在应用程序启动和视图加载时,视图控制器的主视图调整为 320x480,但集合视图卡在 320x568,这是我在 IB 中给它的设计时大小。

我也遇到约束冲突:

Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0xed66060 V:[UICollectionView:0x13a79400]-(-548)-[_UILayoutGuide:0xed65c90]>",
    "<NSLayoutConstraint:0xed66090 V:[UICollectionView:0x13a79400]-(0)-[_UILayoutGuide:0xed65da0]>",
    "<_UILayoutSupportConstraint:0xed4d4e0 V:|-(0)-[_UILayoutGuide:0xed65c90]   (Names: '|':UIView:0xed65c00 )>",
    "<_UILayoutSupportConstraint:0xed65730 V:[_UILayoutGuide:0xed65da0(0)]>",
    "<_UILayoutSupportConstraint:0xed651f0 _UILayoutGuide:0xed65da0.bottom == UIView:0xed65c00.bottom>",
    "<NSAutoresizingMaskLayoutConstraint:0xed72ee0 h=--& v=--& V:[UIView:0xed65c00(480)]>"
)
4

1 回答 1

0

translatesAutoresizingMaskIntoConstraints=YES probably for your top level(main) view and this is creating additional constraints automatically which is conflicting with the constraints created in Interface builder. Set translatesAutoresizingMaskIntoConstraints=NO for your main view and let us know how it goes.

于 2013-11-07T01:32:02.143 回答