J'ai un UIToolbar avec l'alpha mis à .6. Il a l'air génial - mais il laisse aussi les boutons avec un alpha de .6, ce qui est correct mais pas vraiment souhaitable. Y at-il un moyen de définir indépendamment l'alpha d'un UIBarButtonItem? Comment est-ce que je devrais obtenir ces derniers sembler blancs au lieu de légèrement grisés?UIToolBar avec alpha réduit, voulez que UIBarButtonItem ait alpha 1
Répondre
Lorsque vous définissez l'alpha sur une vue, toutes les sous-vues sont composées avec la même valeur alpha. Ce que vous pouvez faire au lieu de définir l'alpha sur la vue elle-même est d'utiliser une couleur de teinte ou une couleur d'arrière-plan avec une valeur alpha. Cela peut produire des effets similaires, sans que toutes les sous-vues héritent de la transparence.
toolbar.tintColor = [[UIColor blackColor] colorWithAlphaComponent:0.6];
Si cela ne fonctionne pas et vous avez réellement besoin de faire le point de vue elle-même transparente, vous devrez retravailler votre hiérarchie de vue afin que les vues ne sont pas opaques subviews. Étant donné que les éléments de bouton de barre ne sont pas disponibles en tant que vues standard, il ne sera probablement pas utilisable dans le cas de la barre d'outils.
self.bottomToolbar.barStyle = UIBarStyleBlack;
self.bottomToolbar.translucent = YES;
self.bottomToolbar.backgroundColor = [UIColor clearColor];
Afficher l'opacité définie sur 1 et ces paramètres l'ont fait pour moi.
C'est la meilleure réponse – respectTheCode
Vous pouvez également définir ceci dans InterfaceBuilder/Storyboard (Style "Translucide Black") – ohcibi
Au-dessus n'a pas fonctionné pour moi dans iOS 4.3, mais cela a fait:
Sous UIToolbar, fournir une méthode:
- (void)drawRect:(CGRect)rect
{
[[UIColor colorWithWhite:0 alpha:0.6f] set]; // or clearColor etc
CGContextFillRect(UIGraphicsGetCurrentContext(), rect);
}
J'ai trouvé que barStyle does'n réellement d'importance. Aucune n'est la définition de la couleur d'arrière-plan pour effacer.
self.toolbar.barStyle = UIBarStyleDefault;
self.toolbar.tintColor = [UIColor colorWithWhite:0.0 alpha:0.5];
self.toolbar.translucent = YES;
Ces lignes ont fait le travail pour moi (ios4.3). Comme je peux le comprendre, en définissant la propriété transférable de barre d'outils sur OUI, vous l'avez définie avec un arrière-plan clair (transparent). Bien sûr, cela dépend de la couleur de teinte que vous avez définie. S'il ne contient pas de composant alpha, la barre sera opaque.
Le principal problème avec le contrôle de la valeur alpha de la barre d'outils est qu'elle s'applique à l'ensemble de la barre d'outils et à ses boutons. Si vous définissez un backgroundColor
avec une valeur alpha < 1, la couleur résultante est combinée avec le barStyle
(UIBarStyleDefault ou UIBarStyleBlack), ce qui donne une couleur plus opaque que la couleur originale backgroundColor
. Si vous définissez le barTintColor
, il semble remplacer tous les autres paramètres, y compris la valeur alpha que vous avez définie, ce qui entraîne une couleur complètement opaque.
La seule façon dont j'ai été capable de réduire l'alpha de la barre d'outils sans affecter ses boutons est par setting its background image via setBackgroundImage:forToolbarPosition:barMetrics:
. Vous pouvez créer un 1px par 1px image avec la couleur souhaitée et alpha:
+ (UIImage *)onePixelImageWithColor:(UIColor *)color {
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, 1, 1, 8, 0, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedFirst);
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillRect(context, CGRectMake(0, 0, 1, 1));
CGImageRef imgRef = CGBitmapContextCreateImage(context);
UIImage *image = [UIImage imageWithCGImage:imgRef];
CGImageRelease(imgRef);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
return image;
}
Ensuite, définir l'image d'arrière-plan:
[toolbar setBackgroundImage:[self onePixelImageWithColor:[[UIColor blackColor] colorWithAlphaComponent:0.7]]
forToolbarPosition:UIBarPositionBottom
barMetrics:UIBarMetricsDefault];
Ceci est la bonne réponse pour iOS 9 – user8030
Après plusieurs heures l'évaluation de chaque méthodes ci-dessus, J'ai trouvé seulement la méthode fournie par Ryan H. est faisable. C'est parce que c'est la méthode que vous pouvez manipuler la valeur alpha tandis que d'autres ne peuvent pas.
Voici la version pour Swift 3:
override func viewDidLoad() {
super.viewDidLoad()
let bgImageColor = UIColor.black.withAlphaComponent(0.6) //you can adjust the alpha value here
self.upperToolBar.setBackgroundImage(onePixelImageWithColor(color: bgImageColor),
forToolbarPosition: .any,
barMetrics: UIBarMetrics.default)
}
func onePixelImageWithColor(color : UIColor) -> UIImage {
let colorSpace = CGColorSpaceCreateDeviceRGB()
let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue)
var context = CGContext(data: nil, width: 1, height: 1, bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace, bitmapInfo: bitmapInfo.rawValue)
context!.setFillColor(color.cgColor)
context!.fill(CGRect(x:0,y: 0, width: 1, height:1))
let image = UIImage(cgImage: context!.makeImage()!)
return image
}
- 1. iPhone UIBarButtonItem alpha de l'image bouton
- 2. Voir avec une faible alpha - alpha élevé avec vue secondaire
- 3. Masques alpha avec OpenGL
- 4. Sampler 2D Alpha Séjours à 1
- 5. IOS: problème avec alpha
- 6. DrawPrimitive avec alpha
- 7. Animation UISlider avec alpha
- 8. AVPlayerLayer avec masque alpha
- 9. C# Alpha forme avec Alpha Blended Blended Controls
- 10. UIToolbar UIBarButtonItem Alignement question
- 11. SASS Text Shadow avec Alpha
- 12. Alpha Pagination
- 13. JLabel avec une valeur alpha
- 14. Appliquer un gradient alpha
- 15. Problème avec [UIColor getWhite: alpha:]
- 16. Sélection Opengl avec test alpha
- 17. Dessiner Bitmap avec canal alpha
- 18. Blur alpha png avec javascript
- 19. filtre Starling: inverti alpha
- 20. Les textures transparentes dans OpenGL ne remplacent pas alpha alpha
- 21. Animation de UIButton alpha avec un arrière-plan PNG: pourquoi l'animation devient-elle blanche lorsqu'elle passe de alpha = 0 à alpha = 1?
- 22. Three.js alpha tearing
- 23. UIToolbar ne montre pas UIBarButtonItem
- 24. jQuery avec plusieurs groupes radio, voulez que 1 seul groupe ait "yes" positionné à "non"
- 25. DirectX alpha masquage
- 26. OpenGL Alpha Mask
- 27. alpha regex ne sélectionne pas les caractères alpha dans bash
- 28. PHP preg_split chaîne mixte alpha numérique puis faire clé alpha
- 29. Division d'une chaîne par groupe [ALPHA] [DIGIT] [ALPHA]
- 30. GDI + LockBits/Alpha
self.bottomToolbar.barStyle = UIBarStyleBlack; self.bottomToolbar.translucent = YES; self.bottomToolbar.backgroundColor = [UIColor clearColor]; –
Cette réponse http://stackoverflow.com/a/5149484/1250436 est meilleure. – ohcibi