2012-12-17 7 views
5

私はUIButtonにテキストと画像(インターフェースビルダー内)の両方を設定するプロジェクトを作成しました。iOS - Interface Builder:画像設定時にUIButtonタイトルが表示されなくなりました。

私は別のプロジェクトを作成しましたが、同じことを達成したいと思いますが、画像を持つようにボタンを設定すると、タイトルが消えます(画像の後ろに隠れていません)。

私はそれがなぜこのようなテーマにいくつかの光を当てることができた場合、私はそれを感謝したいと思うように思えない!

ありがとうございました。

答えて

19

ボタンをカスタムタイプに変更します。画像を置く。

あなた自身の背景を置く必要がありますが、その時点で、エッジ設定を使ってテキストと画像の両方を配置することができます。

イメージとテキストを持つすべてのボタンはカスタムに設定され、最終的には独自のbgイメージも持ちます。

私は別のものを使用します。 cornerRadiusです。ビューには、デフォルトでボタンのような丸い効果があります。

saveButton.layer.cornerRadius = roundingNumber.floatValue; 

また、あなたは、元のボタン役立ちます

saveButton.layer.borderRadius = 1.0f; 
saveButton.layer.borderColor = [[UIColor blueColor] CGColor]; 
// These are not the exact values (or maybe they are) but you get the idea. 

の希望に非常に似ているボタンを取得するためにcornerRadiusと一緒にborderWidthとBORDERCOLORを使用することができるはずです。調査はほとんどの時間を過ごした後

修正

、あなたがボタンで画像を入れたときに表示されていること。テキストが右にスクロールされます。

エッジ設定を使用してイメージを元に戻します。選択されたボタンで

、「インスペクタ属性」でご覧ください>ボタン>エッジ>(ドロップダウン「タイトル」)

私が出ているequasionこれはあなたを左揃えする必要があり

[Edge inset for Title] Left = -(imageWidth * 2) 

ですあなたが置いた画像のタイトル。

正しい見た目にするためには、カスタムポジショニングが必要です。

これは、Interface Builderで完全に行うことができ、あなたがここRoundedRectボタンのスタイルに

を使用することができ、変更を証明するいくつかのイメージです。

ここでは、境界線と背景を削除するために、ボタンの種類を「カスタム」に設定しました。

Custom was set

ここで私は、 "タイトル" のためのエッジセットのトップと左を設定(タイトルは、ドロップダウンのオプションです)

Left and Top was set

EDIT

最新のXcodeがサイズ設定を新しい場所に移動しました

enter image description here

+0

これは正解だと思います。そして、setImage:forStateとsetTitle:forStateを使うのを忘れないでください。 – AntonPalich

+0

は私のためには機能しませんでした。 – jonypz

+0

視覚資料を追加しました。希望が役立ちます。 –

0

ボタンの画像を設定しているが、背景画像を設定していないように聞こえるように聞こえます。

+0

私はこのケースでは問題ではないと思います。背景やテキストとしてイメージを持たせることができますが、背景とイメージ、テキストが必要です。 –

+0

ああ私はつかまった。私は作品の一部としてイメージビューを置くことをお勧めします。画像を背景にして、上にボタンを置いてテキストをもらいます。 – rooster117

3

代わりに背景のフィールドに画像を配置します。このようにして、テキストがイメージの前に表示されます。

+0

ボタンフレーム全体に画像が引き伸ばされます。 – oarfish

関連する問題