According to the documentation for UIVIew @property(nonatomic) CGFloat alpha
The value of this property is a floating-point number in the
Simplest solution as discussed is to change the alpha as follows : Updated version for Xcode 8 Swift 3 is :
yourParentView.backgroundColor = UIColor.black.withAlphaComponent(0.4)
Objective C:
yourParentView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5];
Refer Apple Developer Docs here : https://developer.apple.com/reference/uikit/uiview/1622417-alpha
Here is a bit complex solution:
UIView *container;
UIView *myView;
UIView *anotherView;
myView.alpha = 0.5;
[container addSubview:myView];
anotherView.alpha = 1;
[container addSubview:anotherView];
Use a container
view as superview, anotherView
and myView
are both subview in container
, anotherView
is not a subview in myView
.
In swift
view.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.5)
UPDATED FOR SWIFT 3
view.backgroundColor = UIColor.white.withAlphaComponent(0.5)
Don't set the alpha directly on the parent view. Instead of it use the below line of code which will apply transparency to parentview without affecting its child views.
[parentView setBackgroundColor:[[UIColor clearColor] colorWithAlphaComponent:0.5]];