我已经使用自动布局几个星期了。目前,我正在使用一个名为 FLKAutoLayout 的第 3 方库,它使该过程更容易。我现在可以按照我想要的方式构建视图,通常没有问题。然而,在过去 4 天的工作中,一旦涉及到视图控制器,我一直在努力解决自动布局问题。我对各种 UIViews 都很好......但由于某种原因,每个 viewcontroller.view 都是一个恶魔。除了让 viewcontroller.view 按照我想要的方式调整大小之外,我什么都没有,更深层次的问题是子 viewcontroller 的 UIView 在使用自动布局时无法正确接收事件。手动指定框架时,子视图控制器工作得很好,但是自动布局会破坏一切。
我不明白 viewcontroller 的 UIView 有什么不同,使它与其他所有不同......我的思绪在沮丧中融化。ios 是否在幕后弄乱了我的视图控制器视图或其他什么?
在图像中,红色区域属于子视图控制器。该区域不应超过最底部的子视图(显示三个的卡片)。这应该很容易,我可以让它与一堆普通的 UIView 一起正常工作,但是因为这是一个视图控制器,所以一切都中断了......
任何人都可以阐明它是什么我不知道。非常感谢有关潜在问题的任何线索。
谢谢阅读。
更新:问题可能与不明确的约束有关
UIView *box = [[UIView alloc]init];
[box addSubview:imageView];
[box addSubview:nameLabel];
imageView constrainWidth:@"32" height:@"32"];
[imageView alignTop:@">=0" leading:@"0" bottom:@"<=0" trailing:@"<=0" toView:box];
[imageView alignCenterYWithView:box predicate:@"0"];
[nameLabel constrainLeadingSpaceToView:imageView predicate:@"5"];
[nameLabel alignTop:@">=0" leading:@">=0" bottom:@"<=0" trailing:@"<=0" toView:box];
[nameLabel alignCenterYWithView:box predicate:@"0"];
[self addSubview:box];
[box alignTop:@"5" leading:@"5" bottom:@"-5" trailing:@"-5" toView:self];
上面的示例是一个模棱两可的布局,但我无法弄清楚它有什么问题......