문서에 따르면 UIVIew @property(nonatomic) CGFloat alpha
이 속성의 값은 0.0에서 1.0 사이의 부동 소수점 숫자입니다. 여기서 0.0은 완전 투명을 나타내고 1.0은 완전 불투명을 나타냅니다.
이 값은 현재보기에만 영향을 미치며 포함 된 하위보기에는 영향을주지 않습니다.
다음과 같이 구성된 컨테이너보기가 있습니다.
self.myView.backgroundColor = [UIColor blackColor];
self.myView.alpha = 0.5;
[self addSubview:self.myView];
그런 다음 ‘myView’에 하위보기를 추가합니다.
[myView addSubView anotherView];
anotherView.alpha = 1;
NSLog(@"anotherView alpha = %f",anotherView.alpha); // prints 1.0000 as expected
그러나 ‘ anotherView ‘는 화면에 알파가 있습니다 (예상대로 불투명하지 않습니다)
어떻게 이것이 가능하고 무엇을 할 수 있습니까?
답변
나는 이것이 문서의 버그라고 생각합니다. bugreport.apple.com에 제출해야합니다.
약간의 빠른 조사 후에 내가 볼 수있는 모든 것은 당신이보고있는 것이 항상 어떻게 행동했는지를 시사합니다. 그리고 내 테스트도 그것을 보여줍니다.
보기의 알파는 모든 하위보기에 적용됩니다.
아마도 당신이 필요로하는 전부는 [[UIColor blackColor] colorWithAlphaComponent:0.5]
하지만 그렇지 않다면보기를 아이 대신 형제로 만들어야 할 것입니다.
답변
부모 뷰에서 직접 알파를 설정하지 마십시오. 대신 하위 뷰에 영향을주지 않고 parentview에 투명성을 적용하는 아래 코드 줄을 사용합니다.
[parentView setBackgroundColor : [[UIColor clearColor] colorWithAlphaComponent : 0.5]];
답변
신속하게
view.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.5)
SWIFT 3 용으로 업데이트 됨
view.backgroundColor = UIColor.white.withAlphaComponent(0.5)
답변
알파 대신 배경색의 불투명도를 설정해도 하위 뷰에는 영향을주지 않습니다.
- 보기를 선택하십시오.
- 배경색보다 속성 관리자로 이동
- “기타”를 클릭하십시오
- 불투명도를 30 %로 설정
또는 프로그래밍 방식으로 설정할 수 있습니다.
var customView:UIView = UIView()
customView.layer.opacity = 0.3
그게 다야. 행복한 코딩 !!!
답변
스토리 보드가 마음에 들면 User Defined Runtime Attribute
다음 위치에보기를 입력하십시오 Identity Inspector
.
Key Path: backgroundColor
, Type: Color
, Value:
불투명도 50 % 흰색을 예.
답변
논의 된 가장 간단한 해결책은 다음과 같이 알파를 변경하는 것입니다. Xcode 8 Swift 3의 업데이트 된 버전은 다음과 같습니다.
yourParentView.backgroundColor = UIColor.black.withAlphaComponent(0.4)
목표 C :
yourParentView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5];
https://developer.apple.com/reference/uikit/uiview/1622417-alpha 에서 Apple 개발자 문서를 참조하십시오.
답변
Swift 4.2 및 Xcode 10.1에서
스토리 보드를 통해 색상과 알파 값을 추가하지 마십시오. 이 경우 프로그래밍 방식 만 작동합니다.
transparentView.backgroundColor = UIColor.black.withAlphaComponent(0.5)