5

同僚からプログラムを入手しました。彼は.xibファイルを使用してビューを設定しています。(ハードコアコーダーなので、自分でIBを使用したことはありません...)そこで、彼はViewControlerをセットアップしていて、NavBarを持っています(.xibファイルでは見つかりませんでした!)。

タイトルにドロップシャドウを追加したい。

NavBarを作成している場合、相対コードは次のようになります。

textViewTitle.layer.shadowOpacity = 2.0;
textViewTitle.layer.shadowRadius = 3.0;
textViewTitle.layer.shadowOffset = CGSizeMake(2.0, 3.0);

そしてそれはうまくいきます。掘り下げてみると、これを使用する必要があることがわかりました。

NSDictionary *navbarTtlAts = [NSDictionary dictionaryWithObjectsAndKeys:
                             [UIColor whiteColor], UITextAttributeTextColor, 
                             [UIColor blackColor], UITextAttributeTextShadowColor,
                             [NSValue valueWithUIOffset:UIOffsetMake(2.0, 3.0)], UITextAttributeTextShadowOffset,
                             nil];
[self.navigationController.navigationBar setTitleTextAttributes:navbarTtlAts];

これは機能しますが、shadowOpacityとshadowRadiusのものを追加する方法が見つかりませんでした。

NSDictionaryに以下を追加できることがわかりましたが、機能しませんでした...

                           [NSNumber numberWithFloat: 2.0], @"shadowOpacity",
                           [NSNumber numberWithFloat: 3.0], @"shadowRadius",

何か案は?

4

1 に答える 1

3

これらのキーは、影のオフセットに使用する必要があります。

UITextAttributeTextShadowColor 
UITextAttributeTextShadowOffset

影の半径をテキスト属性として指定する方法はありません。


カスタムシャドウが本当に必要な場合UILabelは、最初の例のように独自のシャドウを作成して設定できます。次に、そのラベルをtitleViewビューコントローラのラベルとして設定しますUINavigationItem

ただし、テキストを自分で更新する必要があります(ナビゲーションコントローラーは自動的に更新しなくなります)。

于 2012-07-19T20:43:38.287 に答える