2016-11-28 5 views
2

ラベルのフォントサイズをパーセンテージで設定する必要があるので、アプリケーション内で現在のレイアウトのサイズを変更すると、テキストのサイズ変更は残りの画面と同じになります。fontSizeをチタンでパーセンテージで定義する

私はこれがあります。

vara label = Ti.UI.createLabel({ 
     text : ("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut").toString(), 
     color : "white", 
     font : { 
      fontSize : deviceWidth * 0.03, 
      fontFamily : "OpenSans-Light" 
     }, 
     left : "0%", 
    })); 

を、私はこのようなものが必要です。

var label Ti.UI.createLabel({ 
     text : ("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut").toString(), 
     color : "white", 
     font : { 
      fontSize : "20%, 
      fontFamily : "OpenSans-Light" 
     }, 
     left : "0%", 
    })); 

問題はのfontSizeということです。20%は動作しません」を

どのようにすることができます私はラベルの中にそれがあるのでしょうか?

私はクラシックモードで働いています

これは私が達成しないであろうものです。

enter image description here

私の画面は、テキストがサイズを変更する必要がありますサイズを変更したとき。なぜなら、調整問題の

答えて

2

編集:

あなたは「ハック」を使用する必要があります、その場で動的にフォントサイズを調整します。ラベルにパーセンテージを使用することはできません。フォローする

手順:

  1. あなたが動的にサイズを変更したいすべての要素のラッパーのビューを作成し、これはラベルあまりに
  2. 以外の他の要素を含むことができ、それの後に(画像へのビュー全体を変換しますレンダリングされました)wrapperView.toImage()
  3. イメージビューを作成し、自分のラッパービューの上に正確に配置します。
  4. ラッパービューを非表示にします。
  5. イメージビューのサイズを変更したいときにサイズを変更します。
  6. 実際にラベルが再度必要になると(アニメーションが実行された後など)、ラッパーを元に戻してイメージを再度削除します。

アニメーション中にアニメーションが行われていて、アニメーション中にユーザーがクリックできないことに慣れているため、イメージが存在しないことはユーザーには分かりません。そして、アニメーションが完了するとすぐに、コンテンツは再び置き換えられます。完璧な実装であり、多くの柔軟性をもたらします。

---今後の参考のために、以下のオリジナルの答えは----

割合は、しかし、あなたを助けるかもしれない解決策がある、ことはできません。

Androidでは、フォントサイズspを使用できます。これはフォントがスケールに依存していることを意味します。基本的にはあなたが探しているものです。

iOSの場合、解像度に基づいてデバイスがiPadまたはiPhoneであることを確認するか、たとえばTi.UI.iPadが存在するかどうかを確認することができます。次に、iPadまたはiPhoneに基づいてフォントサイズを指定することができます。

さらに、iOSでは、ラベルのminimumFontSizeプロパティを使用して、より大きなフォントサイズを固定ビューでラップすることができます(パーセンテージ幅など)。そうすることで、フォントはそのコンテナに基づいて縮小することができます。詳細はdocumentationを参照してください。

+0

私のアプリが既に実行中のときにテキストのサイズを変更する必要があるため、コードを更新してiPhoneの魅力を確認しました –

+0

@Manuel_Rodriguesが私の答えを調整しましたが将来の参照/他の人のために元の回答をそのまま残した –

関連する問題