非常简单(我希望)的自动布局问题,我正在用头撞我的 iMac。
我有这个肖像
这就是风景中发生的事情。
我想要的只是让标签像不使用自动布局时那样展开。我要添加什么约束来均匀地间隔它们?
非常简单(我希望)的自动布局问题,我正在用头撞我的 iMac。
我有这个肖像
这就是风景中发生的事情。
我想要的只是让标签像不使用自动布局时那样展开。我要添加什么约束来均匀地间隔它们?
有一个比@sust86 更简单、更灵活的解决方案:
对我来说,约束看起来类似于:
这种配置的优点是,当标签(在我的例子中是按钮)的宽度发生变化时,您不需要修复任何间距。
在 iOS 6 中使用新的约束是很棘手的。在 ray 的网站上有一个很好的 2 部分教程,与 iOS 6 中的自动布局相关。虽然它解释了如何在自动布局中锚定图像持有者,但这些原则帮助我理解了整个自动布局。希望这对你也有帮助。这里是链接: http ://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2 Adrian
试试这个:
#define moneyLabelWidth 20
@property (nonatomic, strong) UILabel* moneyOneLabel;
@property (nonatomic, strong) UILabel* moneyTwoLabel;
@property (nonatomic, strong) UILabel* moneyThreeLabel;
@property (nonatomic, strong) UILabel* moneyFourLabel;
@property (nonatomic, strong) UILabel* moneyFiveLabel;
@property (nonatomic, strong) UILabel* moneySixLabel;
...
[self.view addSubview:moneyOneLabe];
[self.view addSubview:moneyTwoLabe];
moneyOneLabel.translatesAutoresizingMaskIntoConstraints = NO;
moneyTwoLabel.translatesAutoresizingMaskIntoConstraints = NO
etc
...
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[_moneyOneLabel(moneyLabelWidth)]-[_moneyTwoLabel(moneyLabelWidth)]-[_moneyThreeLabel(moneyLabelWidth)]-[_moneyFourLabel(moneyLabelWidth)]-[_moneyFiveLabel(moneyLabelWidth)]-[_moneySixLabel(moneyLabelWidth)]-|"
options:0
metrics:@{@"moneyLabelWidth":@(moneyLabelWidth)}
views:NSDictionaryOfVariableBindings(_moneyOneLabel, _moneyTwoLabel, _moneyThreeLabel, _moneyFourLabel, _moneyFiveLabel, moneySixLabel)]];
/*add vertical constraints*/
上面的 constrainsWithVisualFormat 基本上说从左边缘到右边缘水平绘制 6 个货币标签,宽度均为 20,它们之间的宽度是可变的。我还没有运行此代码,但我认为它会起作用(或至少接近)。
最简单的方法是在每个视图之间使用2 个约束。一个大于或等于,一个小于或等于。最小尺寸(Greater Then 或 Equal)应该是纵向模式下的间距。最大尺寸(小于或等于)应该是横向模式下的间距。
这与我为这个问题提供的解决方案相同: