2009-06-03 3 views
5

私はツールバーの中に合計を表示したいと思います。私はIBにUILabelをツールバーの上に置いた。IBを使用するUIToolbar内のUILabelは実行時に見えません。どのように修正されますか?

しかし、私がアプリケーションを実行すると、UILabelは完全に見えなくなりますが、コードの値を細かく設定できます。

最も奇妙なことは、他の形式でもすべて正常に動作していることです。なぜ私は1つのフォームでは動作しますが、別のものでは動作しません。

これをどのように修正したらいいですか?あるいは、なぜこの現象が起こっているのでしょうか?

答えて

21

UILabelを使用しないでください。

UIBarButtonItemを使用します。次にそれをスタイル:plainに設定します。それはラベルのように見えますが、実際はボーダレスなボタンです。これは、バーにテキストを表示する一般的な方法です。

コード内にカスタムビューを持つUIBarButtonItemを作成することもできます。 UILabelをUIBarButtonItemに簡単に「ラップする」ことで、ツールバーに何かを追加することができます。


コメントに反応して追加するには:

いずれかの方法を、あなたはボタン「非アクティブ」を作り、それがタッチに反応しません。それはボタンでも、1つのようには見えません。これは、アップルがツールバー/ナビバーにビューを追加して、「上に物事を浮かべる」ように見込んでいる様子です。それはHIGのガイドラインに違反していますが、それは逆のことです。これは推奨される設計手法です。

グローを停止するには ボタンをプログラムで作成し、無効にしてバーに追加し、無効にしますが、暗くしないでください。

+0

良い考え。これはおそらく私より良い答えでしょう:) – Dutchie432

+0

私はそれを前にしていますが、私はラベルをクリックしてボタンとして動作できるので、Apple UIガイドラインに違反していると思います。単純に有益であり、ユーザーの行動には反応しません。 でも問題が解決しない場合は、最適な解決策です。 – mamcx

+0

ボタンを非アクティブにして、それはもはや実際のボタンではありません。これがどのように使用されるのかです。 –

0

IBでは、ラベルを選択して、「レイアウトにしておきます」メニュー項目の「フォントを持っていますか?かなり標準的なことをしようとしているようです。

値を設定しようとすると、ラベルはnilまたは0x0になりますか?ラベルはそこにある可能性がありますが、インスタンスが不良(IB内でIBOutletに正しく接続されていないため)のテキストを設定することはできません....単に値を設定しようとしている行にブレークポイントを設定します)を指定し、label変数がnil(または0x0)でないことを確認します。そうでない場合は、テキストを設定し、テキストが正しく設定されていることを次の行で確認してください。

0

UIToolBarUIButtonをドラッグします。次に、このボタンのUser Interaction Enablesのチェックを外します。

UIButtonUILabelのようにカスタマイズします。これがあなたを助けることを願っています。

UILabel into a UIToolbar

関連する問題