codememo

Swift UIV뷰 배경색 불투명도

tipmemo 2023. 8. 26. 11:54
반응형

Swift UIV뷰 배경색 불투명도

나는 있습니다UIViewUILabel그 안에 있습니다. UIV뷰의 배경색은 흰색이지만 불투명도는 50%입니다. 시 문제가 했습니다.view.alpha = 0.5라벨도 50%의 불투명도를 가질 것이라는 것입니다. 그래서 저는 아마도 그것이 가능할 것이라고 생각했습니다.UIView한 다음 흰색 배경색을 합니다.UIView레이블(label_view)과 함께 표시됩니다. 다음 " "label_view", "white_view", "white_view".label_view.addSubview(white_view)이것은 분명히 작동하지 않습니다.저는 다음과 같이 하고 싶습니다.label_view.backgroundView(white_view)하지만 배경 보기를 설정할 수는 없습니다.UIView마치 당신이 할 수 있는UICollectionView예를 들어.

이 문제를 해결할 방법을 아는 사람이 있습니까?

편집 몇 개의 답변이 거의 같기 때문에 여기에 입력합니다.이제 저는 이것들도 시도해 보았습니다.

label_view1.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.5)
label_view1.addSubview(firstPlacelbl)
endGameView.addSubview(label_view1)

그리고.

label_view1.backgroundColor = UIColor(white: 1, alpha: 0.5)
label_view1.addSubview(firstPlacelbl)
endGameView.addSubview(label_view1)

여전히 라벨은 알파의 영향을 받습니다. 그리고 불투명도는 50%입니다.저는 제가 무엇을 잘못했는지 이해하지 못합니다. 왜냐하면 저는 라벨이 아닌 알파 색상만 0.5로 설정했기 때문입니다.아이디어 있어요?

보기의 배경색을 알파로 UIColor로 설정할 수 있으며 영향을 미치지 않습니다.view.alpha:

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

또는

view.backgroundColor = UIColor.red.withAlphaComponent(0.5)

alpha뷰의 속성이 하위 뷰에 영향을 미칩니다. 당신이 단지 투명한 의 투명배세보기원하는경우만트경'▁view.backgroundColor알파 성분이 1보다 작은 색상에 대한 속성입니다.

view.backgroundColor = UIColor.white.withAlphaComponent(0.5)

Swift 4.x 이상의 경우

yourView.backgroundColor = UIColor.black.withAlphaComponent(0.5)

또한 다음에서 설정할 수 있습니다.InterfaceBuilder색상의 불투명도를 변경함으로써:

enter image description here

는 당이발한문라는 것입니다.view 사용자의 의다릅다니과와 .UIView는 전체 를 말합니다 'view'는 전체 보기를 .예를 들어 홈 화면은 보기입니다.

전체 '보기'를 명확하게 구분해야 합니다.UIView' 및 'UILabel'

Inspector를 클릭하고 Identity Inspector를 이할 수 .Restoration ID.

이제 복원 ID를 사용하여 코드의 각 항목에 액세스합니다.

질문은 오래됐지만 같은 고민을 하는 사람들이 있는 것 같습니다.

당신은 '유아이컬러의 알파 속성과 인터페이스 빌더의 불투명성 속성이 코드에서 다르게 적용된다'는 의견에 대해 어떻게 생각하십니까?


Interface Builder에서 작성된 두 뷰는 처음에는 서로 다른 색상이었지만 조건이 변경될 때는 동일한 색상이어야 했습니다.그래서 코드에서 한 뷰의 배경색을 설정하고 두 뷰의 배경색을 동일하게 만들기 위해 다른 값을 설정해야 했습니다.

실제 예를 들어, Interface Builder의 배경색은 0x1212이고 불투명도 값은 80%입니다(Amani Elsaed이미지:: 빨강: 18, 녹색: 18, 파랑: 18, 육각색 #: [121212, 불투명도: 80). 코드에서 다른 보기의 배경색을 0.8로 설정했습니다.

self.myFuncView.backgroundColor = UIColor(red: 18, green: 18, blue: 18, alpha: 0.8)

확장자는

extension UIColor {
    convenience init(red: Int, green: Int, blue: Int, alpha: CGFloat = 1.0) {
        self.init(red: CGFloat(red) / 255.0,
                  green: CGFloat(green) / 255.0,
                  blue: CGFloat(blue) / 255.0,
                  alpha: alpha)
    }
}

그러나 실제 뷰는

  • '인터페이스 빌더에 지정된 배경색으로 보기': R 0.09 G 0.09 B 0.09 알파 0.8
  • '코드별 배경색으로 보기' : R 0.07 G 0.07 B 0.07 알파 0.8

계산해보면,

  • 0x12 = 18(표준)
  • 18/255 = 0.07058...
  • 255 * 0.09 = 22.95
  • 23(표준) = 0x17

그래서 UIColor 값을 17, 17, 17, 17, 알파 0.8로 설정하여 색상을 비슷하게 맞출 수 있었습니다.

self.myFuncView.backgroundColor = UIColor(red: 17, green: 17, blue: 17, alpha: 0.8)

아니면 누가 제가 뭘 놓쳤는지 말해줄 수 있나요?

스위프트에서는 심플합니다. 배경화면 색상에 이 색상을 넣기만 하면 작동합니다.

let dimAlphaRedColor =  UIColor.redColor().colorWithAlphaComponent(0.7)
yourView.backGroundColor =  dimAlphaRedColor

언급URL : https://stackoverflow.com/questions/27439220/swift-uiview-background-color-opacity

반응형