2017-06-05 7 views
2

autolayoutを使用してこれらのカウントダウンラベルを中央に配置することはできますか?複数のラベルを自動レイアウトでセンタリングする

私は、4つのラベル:minuteValue、minuteUnit、secondValue、およびsecondUnitを中心としたビュー(濃い青色で示す)を持っています。

カウントダウンタイマーが60秒未満になると分ラベルが表示されなくなります。タイマーをどのような状態にでも集中させることは可能ですか?つまり、ラベルが2か4かどうか

自動レイアウトソリューションが誰にも分かっていない場合は、私はそれをコーディングしても大丈夫ですが、可能ならば自動レイアウトを使用してこれを達成するのが私の好みです。

View with four labels

答えて

1

私が正しく理解している場合は、ラベルが2つか4つであるかにかかわらず、は常ににしてください。この場合、それらのコンテンツビューを1つ追加します。だから、あなたはこのような何かを受け取る:

YourBlueView - > ContainerView - > FourLabels

次に、とYourBlueView中心あなたのcontainerViewを:

yourBlueView.addConstraint(NSLayoutConstraint(item: yourBlueView, attribute: .centerY, relatedBy: .equal, toItem: containerView, attribute: .centerY, multiplier: 1, constant: 0)) 
yourBlueView.addConstraint(NSLayoutConstraint(item: yourBlueView, attribute: .centerX, relatedBy: .equal, toItem: containerView, attribute: .centerX, multiplier: 1, constant: 0)) 

最終段階、containerViewであなたのラベルに制約を追加します、次のようになります。

ラベル幅を0に設定すると、中央に残ります。

もう1つの解決方法は、より明確ですが、UIStackViewが必要です。ストーリーボードを使用しているときに、すべてのラベルをその中に入れてください。ストーリーボードウィンドウの下にボタン埋め込みスタックで行い、このスタックビューを青いビューの中央に配置します。ジョブが完了しました

1

UIViewにすべての4つのラベルを追加し、表示するには、次の制約を追加します。

    コンテナに水平に
  1. コンテナ
  2. 内に垂直

すべてのラベルに制約を追加します。今分を隠すことができないときは、分ラベル(28ラベルとminsラベル)の両方の空のテキストを設定します。

希望します。ありがとう。

+0

簡単な音です。私はそれを試してみる、ありがとう。 –

関連する問題