2015-11-19 11 views
6

MM:ss:SS(分、秒、センチ秒)の形式でタイマーの出力を表示しますが、左から右に例えば1センチ秒の変化 - 「11」は「33」よりも狭い。iOS数字が変わるとタイマーUILabelが揺れるのを防ぐ

これを軽減する方法はありますか?私はそれをセンタリングしようとしましたが、固定幅を与えましたが、彼らは助けに見えませんでした。

+0

は、幅広い可能性が最も高いラベルに固定幅制約を与えます。 ex 33:33:33が完全に含まれるべきである。ラベルに背景色を付けます。あなたの問題をある程度まで解決します –

+1

テキストキットを使うと、すべての数字が等しい幅になるように指定することができます。 – milo526

答えて

10

システムフォントは比例数字を使用しています。モノスペースの数字が必要な場合は、+[UIFont monospacedDigitSystemFontOfSize:weight:]を使用して取得できる変形フォントがあります。これは、システムフォントに対してのみ機能します。

別のフォントを使用する場合は、等幅のバリアントを要求してみてください。 UIFontが与えられた場合は、fontDescriptorを要求してから、-[UIFontDescriptor fontDescriptorWithSymbolicTraits:]UIFontDescriptorTraitMonoSpaceを使用して、等幅フォントの数字(数字だけではない)の同様のフォント記述子を要求することができます。新しいフォント記述子を+[UIFont fontWithDescriptor:size:]に渡すことで、新しいフォントを作成できます。

しかし、私はImpactのモノスペースの変形があるとは思っていません。あなたの目的には適していません。

+0

これはカスタムフォントでも使えますか?この場合、私は 'Impact'を使用しています –

+0

これはまさに私のコメントで意味していたもので、十分に速く見つけることができませんでした;) – milo526

+1

@ChrisByattモノスペースの数字がないフォントでは動作しません。 – milo526

1

使用固定幅フォント、固定幅フォントまたは非比例フォントとも呼ばれる固定幅フォントは、文字と文字がそれぞれ同じ水平量を占めるフォントです。モノスペースフォントの例には、Courier、Courier New、Lucida Console、Monaco、Consolasがあります。

+0

Courier、Courier NewのみがXcodeプロジェクトに含まれています。しかし、ええ、それらのフォントは、任意の文字ごとに等しい幅を持っています。いいね – coolcool1994

関連する問題