【Swift】코피페로 사용할 수 있는 ColorPicker(색을 자유롭게 선택할 수 있는 팔레트)

iOS14에서 등장한 UIColorPickerViewController 하지만,
간단하게 실장 할 수 있어 매우 편리했기 때문에 코피페로 사용할 수 있도록 실어 둡니다.
이번에는 SwiftUI가 아닌 Storyboard에서 구현하고 있습니다.


실행 환경
버전


Xcode
12.0

Swift
5


ColorPicker는 무엇입니까?



자유롭게 색 선택이나 투명도를 조정할 수 있는 컬러 팔레트입니다.


Copipe에서 사용할 수 있는 ColorPicker 코드



시작하면 ColorPickerViewController가 표시되는 간단한 앱이됩니다.
색상을 선택하면 viewbackgraoundColor 에 반영됩니다.
import UIKit

class CPSampleViewController: UIViewController {

    var colorPicker = UIColorPickerViewController()
    var selectedColor = UIColor.white

    override func viewDidLoad() {
        super.viewDidLoad()
        colorPicker.delegate = self
        view.backgroundColor = selectedColor
        appearColorPicker()
    }

    func appearColorPicker() {
        colorPicker.supportsAlpha = true
        colorPicker.selectedColor = selectedColor
        present(colorPicker, animated: true)
    }
}

extension CPSampleViewController: UIColorPickerViewControllerDelegate {
    func colorPickerViewControllerDidSelectColor(_ viewController: UIColorPickerViewController) {
        selectedColor = viewController.selectedColor
        view.backgroundColor = selectedColor
    }

    func colorPickerViewControllerDidFinish(_ viewController: UIColorPickerViewController) {
        print("dismissed colorPicker")
    }
}

작동하자.





해설①


UIColorPicekrViewController 의 속성에 대해 설명

우선,
colorPicker.supportsAlpha = true

· Apple 공식 문서
supportsAlpha
A Boolean value that enables alpha value control.

투명도 제어를 가능하게 하는 Bool 값
라는 것입니다.

즉,supportsAlpha의 값을 false로 설정하면 ColorPicker의 Opacity 컨트롤러가 숨겨집니다.
colorPicker.supportsAlpha = false



계속해서,
colorPicker.selectedColor = selectedColor

· Apple 공식 문서
selectedColor
The color selected by the user.

사용자에게 선택된 색상
라는 것입니다.

그 말입니다.
이 값으로부터 선택된 색을 취득하거나, 반대로 UIColorPickerViewController 가 열렸을 때에 선택된 색을 결정할 수가 있습니다.

해설②


UIColorPicekrViewController 의 delegate 메소드에 대해서 해설

첫째,
func colorPickerViewControllerDidSelectColor(_ viewController: UIColorPickerViewController) {
     }

· Apple 공식 문서
colorPickerViewControllerDidSelectColor(_:)
Informs the delegate when the user selects a color.

사용자가 색상을 선택할 때 호출되는 delegate 메서드
라는 것입니다.

이번에는이 delegate를 사용하여 전역 변수에 선택된 색상 값을 할당합니다.

이어서
func colorPickerViewControllerDidFinish(_ viewController: UIColorPickerViewController) {
    }

· Apple 공식 문서
colorPickerViewControllerDidSelectColor(_:)
Informs the delegate that the user dismissed the view controller.

사용자가 UIColorPickerViewController를 dismiss할 때 호출되는 메서드
라는 것입니다.

요약



매우 간단하게 구현할 수 있게 되었으므로 점점 사용해 가고 싶습니다!
그러나, iOS14에 대응하고 있지 않으면 사용할 수 없기 때문에 그 주변은 모습 보면서라는 느낌일까요.

뭔가 잘못 등 있으면 부드럽게 정정해 주시면 감사하겠습니다.

좋은 웹페이지 즐겨찾기