2011-08-08 11 views
2

イメージを使用せずに、UILabelで内側のシャドウを描く最も簡単な方法は何ですか?UILabelの内側のシャドウ

ドロップシャドウにはshadowColorとshadowOffsetを使用できますが、内側のシャドウのプロパティは表示されませんでした。

+0

あなたが望むイメージの例を提供すると役立つかもしれません。私はあなたがテキストがくぼんで見えるようにするか、または他の視覚効果を見たいのかどうかはわかりません。 –

+0

確かに、内部の影がどのように見えるかは、Googleの次の例です:http://sublimeorange.com/css/css3-inner-shadow/ –

答えて

0

このような内部シャドウのプロパティの意味。 shadowOffsetは、UILabelの影(縦または横の影)を設定するオプションです。

これはわかりませんが、このanswerは実装するには長いかもしれません。

+1

ドロップシャドウ≠内側のシャドウ。質問を読む。 –

1

私はこの外観を達成するための簡単な方法はないと思います。シャドウを描画するイメージまたはカスタムビューを使用する必要があります。

お気に入りの画像エディタを使用して、透明度(必要な場合は色)に対して合成された内側の影の画像を作成し、伸縮可能なUIImageに読み込みます。例えば、ここで内側の影の画像(17px X 17px)は次のとおりです。 inner shadow

あなたはこのようにそれをロードすることができます。そして、ラベルの後ろにinnerShadowViewを配置

UIImage* innerShadow = [ [ UIImage imageNamed: "innershadow.png" ] 
     stretchableImageWithLeftCapWidth: 8 topCapHeight: 8 ]; 
UIImageView* innerShadowView = [ [ [ UIImageView alloc ] initWithImage: innerShadow ] 
     autorelease ]; 
myLabel.backgroundColor = [ UIColor clearColor ]; 

を。画像リソースを避けたい場合は、プログラムでプログラムを生成することもできます。コメントに基づいて

**アップデートは、あなたが探している効果は、以前のコメントで画像よりも完全に異なっている最新のコメントに基づいて**

ああ、次の。

この場合は、UILabelサブクラスを作成し、独自の描画を行い、探しているエフェクトを合成します。内側の影効果を合成する方法については、this answerをご覧ください。

+0

Hm、これは 'UIView'sでうまくいくと思いますが、私は' UIView'と 'UILabel'の両方で動作する解決策が必要です。 –

+0

UILabelはUIViewのサブクラスです。これはあなたのためにはうまくいかないと思う特定の理由はありますか? –

+0

はい、これをUILabelに適用するだけで、ラベルのフレームに内側の影ができます。私は実際のテキストの内側の内側の影が必要です。申し訳ありませんが、最初の例が誤解を招く場合は、次のようにしてください。http://download.oracle.com/javafx/2.0/visual_effects/img/inner.jpg –