J'ai construit un UIView en story-board qui se compose comme suit:UIVisualEffectView construit en story-board est opaque
UIView (called _view)
UIVisualEffetView (dark)
UIVIew
Button
Je l'ai fait comme ça pour la capacité de réutiliser entre plusieurs contrôleur de navigation. Donc, pour cela, j'ai tout réglé et je peux montrer ma vue dans mon contrôleur principal appelé "ViewController" qui est intégré dans un contrôleur de navigation. Mais le problème est que le flou est opaque, par exemple la barre de navigation bleue de mon contrôleur de vue n'est pas visible sous UIVIsualAffectView!
Voici le code que j'utilise pour la mise en place de la vue personnalisée:
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self setup];
}
return self;
}
- (void)setup {
_view.backgroundColor = [UIColor clearColor];
UIView *rootView = [[[NSBundle mainBundle] loadNibNamed:@"SideMenuView" owner:self options:nil] objectAtIndex:0];
CGRect newFrame = rootView.frame;
newFrame.size.width = [[UIScreen mainScreen] bounds].size.width/2;
newFrame.size.height = [[UIScreen mainScreen] bounds].size.height;
[rootView setFrame:newFrame];
UIWindow* currentWindow = [UIApplication sharedApplication].keyWindow;
currentWindow.backgroundColor = [UIColor clearColor];
currentWindow.windowLevel = UIWindowLevelNormal;
[currentWindow addSubview:rootView];
}
Et voici le code que j'utilise pour appeler la vue de mon contrôleur principal:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self.leftBarButton setTarget:self];
[self.leftBarButton setAction: @selector(test)];
}
- (void)test {
SideMenuView *test = [[SideMenuView alloc] init];
[self.view addSubview:test];
test.translatesAutoresizingMaskIntoConstraints = NO;
}
J'ai également essayé de forcer la propriété « setOpaque » Non dans mon SideMenuView.m mais sans effet
Voici une capture d'écran de ce qu'il faut faire:
Connaissez-vous les gars ce qui ne va pas avec mon code?
J'ai également ajouté un bouton au milieu de l'écran avec un fond bleu, mais ce n'est pas visible sous le flou de sorte que le problème n'est pas la barre de navigation spécifique
Merci d'avance pour votre aide!