答えて

7

UITabBarあなたがすることができますO:

tabBar.alpha = 0.5 

A UINavigationControllerはビューではありません、それはあなたがそれを暗くしたいと言うときので、それは意味がない、コントローラです。

navigationController.navigationBar.alpha = 0.5; 

をそれとも、navigationControllerのすべてを暗くしたい場合は:あなたはUINavigationBarを暗くしたいことを意味している場合、あなたは何ができる

navigationController.view.alpha = 0.5; 
+0

状況に応じて、この方法を使用して暗くし、それをアニメーション化するのは簡単だろう。 – brandonbocklund

+0

これはもちろん、問題のビューの下にある色によって異なります。ほとんどの場合、ウィンドウの色ですが、一貫していません。 –

2

UIViewのサブクラスを作成して、黒い実線を表示します。次に、ビューを通してタッチイベントを渡す必要があるので、-pointInside:withEvent:をオーバーライドし、NOを返し、メッセージをスーパービューに渡す必要があります。このビューを、暗くしようとしているビューのサブビューとして挿入します。 alphaプロパティを使用して、調光効果を制御します。

私は退屈だ。ここに私が一緒に投げたものがあります。

あなたのビューコントローラで

IADimmingView.h

#import <UIKit/UIKit.h> 

@interface IADimmingView : UIView 

- (id)initWithContainingView:(UIView *)view; 
- (void)dim; 

@end 

IADimmingView.m

#import "IADimmingView.h" 

@interface IADimmingView() 

@property (strong, nonatomic) UIView *containingView; 

@end 

#pragma mark - 

@implementation IADimmingView 

@synthesize containingView; 

- (id)initWithContainingView:(UIView *)view 
{ 
    NSParameterAssert(view); 

    self = [super initWithFrame:view.frame]; 

    if (!self) 
     return nil; 

    containingView = view; 
    self.backgroundColor = [UIColor blackColor]; 

    return self; 
} 

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    [self.containingView pointInside:point withEvent:event]; 

    return NO; 
} 

- (void)dim 
{ 
    [self.containingView addSubview:self]; 
} 

@end 

、それは次のように使用されている...のために

IADimmingView *dimmingView = [[IADimmingView alloc] initWithContainingView:self.tabBarController.tabBar]; 
dimmingView.alpha = 0.75; 
[dimmingView dim]; 
1

カスタムそれらを行うことができます。これはここで何度も尋ねられました:Custom colors in UITabBar

ナビゲーションバーでも同じことをやってください。

ナビゲーションコントローラによって管理されるナビゲーションバー:

+0

これは古くなった素材です。しかし、Appearance APIは良い考えです。 –

+0

あなたは正しいですが、初心者は私たちが助言していることをすることはできません。何らかの理由で。したがって、この場合、別のオプションが必要です。それはちょうど私のために一度働いたものです。 – SentineL

0

これはnavigationBardocumentationに宣言されている方法です。 (読み取り専用)

あなたがそのフレーム、境界、またはアルファ値を変更していないか、そのビューを変更決してしなければならないUINavigationBarクラスのメソッドとプロパティを使用して、ナビゲーションバーの外観をカスタマイズすることが許されているが、直接階層。ナビゲーションバーを表示するか非表示にするかは、常にnavigationBarHiddenプロパティを変更するか、setNavigationBarHidden:animated:メソッドを呼び出すことによって、ナビゲーションコントローラを介して行う必要があります。

これは私がこの問題を解決するために使用答えです:Visible buttons with transparent navigation bar

関連する問題