developer tip

UITextField에서 자리 표시 자 텍스트의 기본 색상은 무엇입니까?

copycodes 2020. 12. 10. 20:41
반응형

UITextField에서 자리 표시 자 텍스트의 기본 색상은 무엇입니까?


UITextField기본적으로의 자리 표시 자 텍스트가 어떤 색인지 아는 사람이 있습니까? UITextView의 텍스트를 같은 색 으로 설정하려고합니다 . 나는 다른 곳에서 읽었 UIColor.lightGrayColor()지만 실제로는 약간 더 가볍습니다.


이 색상 attributedPlaceholderUITextField.

기본값은 다음과 같습니다. NSColor = "UIExtendedSRGBColorSpace 0 0 0.0980392 0.22";

에 확장 (또는 카테고리)을 추가 할 수 있습니다 UIColor.

extension UIColor {
    static var placeholderGray: UIColor {
        return UIColor(colorLiteralRed: 0, green: 0, blue: 0.0980392, alpha: 0.22)
    }
}

2018 년 최신 구문은 다음과 같습니다.

extension UIColor {
    static var officialApplePlaceholderGray: UIColor {
        return UIColor(red: 0, green: 0, blue: 0.0980392, alpha: 0.22)
    }
}

#colorLiteralRed더 이상 사용되지 않습니다. 어떤 경우에는 이것을 알고 있어야 합니다.


색상은 # C7C7CD (r : 199 g : 199 b : 205)입니다 (pterry26이 말한대로).

글꼴 모음은 HelveticaNeue-Medium 이고 크기는 16입니다.


이것은 화면에서 색상이 어떻게 보이는지에 대한 추측입니다. 실제 값은 Apple 코드에서 attributedPlaceholder.


Mac으로 스크린 샷을 보내고 Photoshop의 스포이드 도구를 사용했습니다. 관심있는 사람이라면, 이것은 적어도 흰색 배경의 자리 표시 자 색상의 아주 좋은 근사치입니다.

빨간색 : 199, 녹색 : 199, 파란색 : 205


실제 색상은 단색이 아니지만 투명도가 있습니다. 그래서 가장 가까운 색은

빨간색 : 4, 녹색 : 4, 파란색 : 30, 알파 : ~ 22 %

흰색 배경에 이것을 사용하면 @ pterry26이 위에 쓴 것을 얻을 수 있습니다.


위의 정답 값 사용

extension UIColor {

    class func greyPlaceholderColor() -> UIColor {
        return UIColor(red: 0.78, green: 0.78, blue: 0.80, alpha: 1.0)
    }

}

Apple 코드에 따르면 70 % 회색입니다.

open var placeholder: String? // default is nil. string is drawn 70% gray

rgb로 변환하면 :

UIColor.init(red: 178/255, green: 178/255, blue: 178/255, alpha: 1)

나는 그것을 믿는다 R:191 G:191 B:198 A:1. 아래 이미지를 참조하십시오. 여기에 표시된 컨트롤은 UIButton위와 같고 Title TextColor나머지는 UITextFields기본 자리 표시 자 색상입니다. iOS가 차이가 있다면 이것은 iOS 9입니다.여기에 이미지 설명 입력


코드 # 999999는 내 양식에 완벽하게 일치합니다!


나중에 변경 될 경우 텍스트 필드의 색상을 동적으로 제거하는 것이 좋습니다. 기본값은 70 % 회색으로 매우 가깝습니다.

extension UITextField {
  var placeholderColor: UIColor {
    return attributedPlaceholder?.attributes(at: 0, effectiveRange: nil)[.foregroundColor] as? UIColor ?? UIColor(white: 0.7, alpha: 1)
  }
}

iOS 13 이상에서 추가하기 위해 자리 표시 자 색상은 Apple에서 다음을 통해 노출됩니다.

UIColor.placeholderText

동적입니다 (어둡고 밝음 모두 지원).

iOS 13 이전 버전으로 넣기 :

static var placeholderText: UIColor {
  if #available(iOS 13.0, *) {
    return .placeholderText
  }
  return UIColor(red: 60, green: 60, blue: 67)!.withAlphaComponent(0.3)
}

Mac의 도구를 사용하여 색상을 얻을 수 있다고 생각합니다.여기에 이미지 설명 입력


레이블 글꼴을 "light"로 설정
mylabel.font = [UIFont fontWithName : @ "HelveticaNeue-Light"size : 14.0f];
자리 표시 자 텍스트의 색상 코드는
# c2b098입니다.

참고 URL : https://stackoverflow.com/questions/31057746/whats-the-default-color-for-placeholder-text-in-uitextfield

반응형