重複の可能性:
自動レイアウトでも間隔
ボタン付きのスクロール可能なバーを作成しようとしています(に似ていますUISegmentedControl
)。スーパービューはUIScrollView
です。ボタンがscrollviewに収まらない場合は、scrollviewをスクロール可能にする必要があります。これまでのところ、ほとんどすべてが正常に機能しています。
たくさんのボタンがある(右にスクロール):
ボタンはそれほど多くありません:
さて、私の目標は、すべてのボタンを配置する余地がある場合、それらを320pxのビュー全体に均等に分散させることです。ボタン間のスペースの制約を定義するにはどうすればよいですか?
現在、私は次の制約を使用しています(自己はUIScrollView
):
UIView *firstButton = self.buttons[0];
[self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"|-(5)-[firstButton]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(firstButton)]];
UIView *lastButton = [self.buttons lastObject];
[self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"[lastButton]-(5)-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(lastButton)]];
UIView *previousView = nil;
for (UIView *view in self.buttons) {
if (previousView) {
[self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"[previousView]-(5)-[view]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(previousView, view)]];
}
previousView = view;
}
スーパービューのタイプをからに変更するとUIScrollView
、UIView
次の結果が得られますが、それでも希望どおりではありませんが、少なくとも、右端に接続している最後のボタンの制約を探します(これは理にかなっています。コンテンツサイズは自動的に設定されるため、スクロールビューでは発生しません):
何か案は?