수색…


비고

@IBDesignable 에서 @IBDesignable@IBInspectable 지시문을 도입하여 Interface Builder에서 사용자 정의 컨트롤을 만드는 것이 훨씬 쉬워졌습니다. 개발자는 몇 줄의 코드를 추가하여 풍부하고 복잡한 애니메이션 컨트롤을 만들 수 있습니다. 얼마나 많은 개발자가 아직이 기능을 완벽하게 채택하지 못했는지에 놀랐습니다. 기존 클래스에 몇 줄의 코드 만 추가하면 훨씬 쉽게 작업 할 수 있습니다.

이 기능은 Objective-C에서도 사용할 수 있으며 오래된 클래스에 생명을 불어 넣을 수있는 좋은 방법입니다. Objective-C의 문법적 요소는 IB_DESIGNABLE 및 IBInspectable입니다. 그러나 지금은 Swift의 예제에 집중할 것입니다.

라이브 렌더링 된 둥근 뷰

이것은 iOS 개발에서 공통적으로 요구되는 사항이며, 코드에서 순전히 완료되어야하는 것이 었습니다 (또는 이미지 - 멍청한!). Interface Builder에서 자신의 종류를 미리보기가 매우 쉽습니다. 사용하지 않는 것에 대한 변명의 여지가 절대적으로 없습니다.

코드는 다음과 같습니다.

import UIKit

@IBDesignable
class MyRoundedView: UIView {

    @IBInspectable var radius: CGFloat = 8 {
        didSet {
            self.layer.cornerRadius = radius
        }
    }
    
    override func awakeFromNib() {
        self.layer.cornerRadius = self.radius
        self.layer.masksToBounds = true
    }
}

이 클래스를 사용하려면 프로젝트에 추가 한 다음 IB에서 스토리 보드를 열고 알맞은 크기의 일반적인 UIView를 만듭니다. 배경색을 지정하여 볼 수있게 한 다음 오른쪽 유틸리티 패널의 ID 관리자로 이동하여 드롭 다운의 클래스 유형을 MyRoundedView 로 변경합니다.

클래스 유형을 MyRoundedView로 설정

이렇게하면 "Classes"및 "Designables"라는 "Module"아래에 세 번째 레이블이 나타나야하며 "Up to date"로 변경하기 전에 "Updating"이라고 잠시 동안 알려야합니다. 이는 Xcode가 MyRoundedView 대한 코드를 성공적으로 다시 컴파일했음을 의미합니다.

이제 Attributes Inspector를 열면, "My Rounded View"라는 제목과 "Radius"라는 레이블이 붙은 창의 상단에 새 섹션이 표시됩니다 (잠시 후 잠시 멈춘 후). 코드에서 설정 한 초기 값). 이것은 @IBInspectable 로 표시했기 때문에 Attributes Inspector에 나타났습니다.

이제 이것을 다른 번호로 변경할 수 있으며 둥근 뷰의 코너 반경이 실시간으로 업데이트되어야합니다!

inspectable 속성 업데이트하기



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow