2

私は iPhone5 i 用のアプリを開発し、自動レイアウトを使用できるようにしました。各ボタンの垂直方向のスペースを 40 にして、別のボタンに配置しました。このアプリを iPhone4s で実行すると、最後のボタンが表示されません。

iphone4sだとこんな感じ

4

3 に答える 3

2

コードでこれを行いたくない場合は、ボタンの間に「同じ高さ」の制約があり、明示的な高さがない非表示の「スペーサー」ビューを追加する必要があります。ボタンを正しく配置するために、必要に応じて拡張/収縮します。

ここに画像の説明を入力

于 2013-08-21T07:42:59.893 に答える
0

UIViewクリア/非表示のオブジェクトをスペーサーとして使用できますが、他の人が説明したように、それは必須ではありません。また、プログラムで制約を作成し、メソッドmultiplierに提供された値を適切に使用して等間隔に配置することもできます。constraintWithItemたとえば、UIButtonオブジェクトの配列がある場合、次のように垂直方向に配置できます。

[buttons enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:obj
                                                          attribute:NSLayoutAttributeCenterY
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.view
                                                          attribute:NSLayoutAttributeCenterY
                                                         multiplier:2.0 * (idx + 1.0)/([buttons count] + 1.0)
                                                           constant:0.0]];
}];
于 2013-08-21T08:26:25.733 に答える