2011-07-11 2 views
11

Je crée un UIView contenant du texte qui couvre partiellement un UIImageView. Je veux que l'utilisateur soit capable de lire le texte tout en conservant une perspective sur l'image en dessous. J'ai essayé de définir la couleur d'arrière-plan sur [UIColor clearColor], mais l'arrière-plan est totalement transparent et il est difficile de lire le texte en fonction des couleurs de l'image.Comment créer un arrière-plan semi-transparent pour un UIView?

Si j'abaisse la vue .alpha = 0,5 l'ensemble de la vue incluant le texte est partiellement transparent. Ce que j'aimerais, c'est conserver le texte et réduire partiellement la transparence de l'arrière-plan, permettant à l'image de transparaître.

Répondre

28

Je pense que ce que vous voulez dire, c'est que vous voulez que la backgroundColor de votre UIView soit semi-transparente? Si vous voulez utiliser blanc/transparent ceci:

myView.backgroundColor = [UIColor colorWithWhite:myWhiteFloat alpha:myAlphaFloat]; 

autre si vous voulez qu'il soit une autre couleur utiliser la méthode UIColor générale: +colorWithRed:green:blue:alpha:

+0

J'ai essayé le suivant "self.summaryViewController.view.backgroundColor = [UIColor colorWithWhite: 1.0 alpha: 0.2];" et cela n'a eu aucun effet. Il y a un certain nombre de sous-vues dans le summaryViewController.view. Cela aurait-il un effet? – ChrisP

+0

Je l'ai eu pour travailler. Fait intéressant, j'ai dû ajouter la commande à viewDidLoad du summaryViewController plutôt que dans son contrôleur parent. – ChrisP

0

Je crois que vous devriez utiliser:

myView.alpha = myAlphaFloat; 
myView.opaque = NO; 
+1

Ceci définit la vue entière et son contenu. La réponse de Jesse définit backgroundColor. – grigb

+0

NON, c'est ce que l'auteur de la question a dit ne pas vouloir faire, parce qu'il essaie de rendre le texte 100% opaque - seule la couleur de fond * est désirée pour être semi-transparente. – ToolmakerSteve

29

Pour ceux qui ont leur vue dans un storyboard ou .xib, vous le faites simplement dans le constructeur de l'interface en sélectionnant l'option "Effacer la couleur" pour l'arrière-plan de la vue dans le volet Utilitaires (le volet sur la droite). "Clear Color" donnera à la vue un arrière-plan complètement transparent.

See screenshot

Si vous avez besoin d'une couleur de fond qui est partiellement transparent, sélectionnez la couleur de fond désirée avec le sélecteur de couleur et utilisez le curseur Opacité en bas pour définir la transparence.

opacity slider to arrange transparency of the background colour of your view

2

Finalement, vous avez déjà une couleur pour que vous puissiez utiliser .colorWithAlphaComponent comme ceci:

let exampleColor = UIColor.blackColor() 
overlayView.backgroundColor = exampleColor.colorWithAlphaComponent(0.8) 
6

Cela fonctionne.

myView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.7f]; 
0

Pour Xamarin C#, à ce moment, le story-board visuel ne pas le curseur « opacité » du story-board de Xcode mentioned by Bocaxica.

Si vous définissez BackgroundColor pour Voir nameOfView en story-board, puis à ViewDidLoad, ajoutez cette ligne de commande de votre vue de définir alpha:

nameOfView.BackgroundColor = nameOfView.BackgroundColor.ColorWithAlpha(0.7f); // A value between 0 and 1. 
0

Swift 3+

moitié blanc transparent:

view.backgroundColor = UIColor(white: 1, alpha: 0.5) 

ou noir demi transparent:

 view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)