2016-12-03 15 views
0

내가 얻는 인터넷 정보를 기반으로 다른 IBInspectable 항목을 설정하고 싶습니다. 예를 들어, 녹색, 빨간색, 주황색 동그라미 용 IBInspectables가 있습니다. 요청에 녹색이라고 표시되면 isGreen을 Yes로, 다른 항목을 No로 설정할 수 있습니다. 다른 두 사람도 마찬가지입니다. IBInspectables here을 볼 수 있습니다. 내가 거기에 넣은 코드로 할 수 있다는 것을 알고 있지만 프로그래밍 방식으로 전환 할 수있는 방법이 있습니까?프로그래밍 방식으로 IBInspectable 설정

+0

class MyViewController: UIViewController { @IBOulet weak var fooView: FooView! @IBAction func buttonTapped(sender: UIButton) { fooView.diameter += 5 } } 
: https://iosdevcenters.blogspot.com/2017/07/how-to-use-ibinspectable-in-swift-30.html –

답변

2

IBInspectable는 IB에서 볼 수 있도록 코드 된 속성 일뿐입니다. 그래서이있는 경우 :

@IBInspectable var isGreen:Bool? { 
    didSet { 
     // code to color circle? 
    } 
} 

이 작업을 수행 할 수 있습니다

self.isGreen = true 
+0

그래서, 내 ViewController에서 @IBInspectable isGreen을 추가하고 viewWillAppear에서 무엇을 작성해야합니까? –

+0

어디에서 전화해야하는지, 전화를 걸지는 어디에서 결정해야합니까? –

+0

질문을 잘못 읽었습니다. IBInspectable 속성에는 이미 UIColor 유형에 대한 지식이 있으므로 리팩터링 할 수 있습니다. [링크] http://nshipster.com/ibinspectable-ibdesignable/이 좋은 예를 보여줍니다. – dfd

0

당신은 혼란 소리. 용어 IBInspectable@IBInspectable 태그가있는 뷰 오브젝트의 특성을 설명합니다. 그러면 Interface Builder에서 Interface Builder 내부에서 해당 속성을 변경할 수 있기를 원합니다.

인터페이스 작성기에서 편집 가능한 것을 제외하고 IBInspectable 속성은 다른 속성과 다를 바 없습니다.

당신은 속성 직경 클래스 CircleView있는 경우 :

class FooView: UIView { 
    @IBInspectable var diameter: CGFloat { 
    didSet { 
     //Code to do something with a change to the diameter property 
    } 
} 

그리고 당신의 뷰 컨트롤러가 콘센트와의 FooView 개체가가, 다음 코드에서 사용자 정의 속성 값을 바로 변경할 수 있습니다 다른 재산과 같은 :

당신은 @IBInspactable 속성을 설정하려면 볼 수