RGB를 사용하여 색상 결정 (UIColor)

6345 단어 Swift

이번 내용


  • 앱을 만들 때, 어떻게 하면 커스텀된 색을 코드로 사용할 수 있는지 궁금해서 조사해 보았습니다.
  • UIColor(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) 를 사용하여 색상을 변경해 봅니다.

  • RGB란?


  • 어쩐지 알 것 같습니다만, R은 Red , G는 Green , B는 Blue 입니다.
  • 이 3색의 조합을 사용해, 다양한 색을 표시할 수가 있습니다.

  • 코드와 간략한 설명


  • 이번에는, 코드로 작성한 UISegmentedControl의 selectedSegmentTintColor 로 커스텀한 색을 사용하고 싶으므로, UIColor(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) 를 사용합니다.
  • 이번에는이 이미지의 빨간색을 표시합니다.
  •    uiSegmentControl.selectedSegmentTintColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0)
    

  • 여기서 red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0 의 값을 간단하게 조사하는 방법을 써
  • Main.storyboard에 View 등의 색을 설정할 수 있는 것을 작성합니다.
  • 색상을 custom으로 선택합니다. (이번에는 View의 backgroundColor에 색상을 설정했다고 가정)
  • viewDidLoad 등에서 print(self.view.backgroundColor as Any) 를 사용하면 디버그 영역에 아래와 같이 표시됩니다.
  • 왼쪽에서 RGB와 가장 오른쪽은 alpha입니다.
  • 표시된 숫자 부분을 반올림하여 사용합니다. (예 : 0.405169를 0.40으로 사용합니다.)

  •    (UIExtendedSRGBColorSpace 1 0.405169 0.512318 1)
    

    실제 코드


    class SegmentedControl{
    
        var uiSegmentControl = UISegmentedControl()
    
        let realmCRUDModel = RealmCRUDModel()
    
    }
    
    extension SegmentedControl{
    
        func createSegment(targetView:UIView){
    
            realmCRUDModel.readRealmTag()
    
            uiSegmentControl.removeAllSegments()
    
            for segmentCount in 0...realmCRUDModel.realmTagArray.count - 1{
    
                uiSegmentControl.insertSegment(withTitle: realmCRUDModel.realmTagArray[segmentCount], at: segmentCount, animated: true)
    
            }
    
            uiSegmentControl.frame = CGRect(x: targetView.bounds.minX + 5, y: targetView.bounds.minY + 97, width: targetView.frame.size.width - 10, height: 32)
    
            uiSegmentControl.selectedSegmentTintColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0) 
    
            targetView.addSubview(uiSegmentControl)
        }
    
    }
    



    Qiita를 쓰고 있으면 무의식적으로 쓰는 내용을 여러 번 중얼거리거나 생각하기 때문에
    어느새 기억하는 것이 요즘 자주
    지적, 질문 등 있으면, 코멘트까지 부탁드립니다.

    좋은 웹페이지 즐겨찾기