study record

[iOS] 라이브 렌더링(스토리보드에서 실시간 랜더링)을 어떻게 설정할 수 있나? 본문

iOS/iOS 정리

[iOS] 라이브 렌더링(스토리보드에서 실시간 랜더링)을 어떻게 설정할 수 있나?

asong 2022. 2. 16. 13:30

@IBDesinable 속성을 사용하면 인터페이스 빌더 수행을 라이브로 업데이트시킬 수 있다. IBDesinable은 UIView 클래스에서 잘 정의되기 위해 프레임을 필요로 한다.

 

https://zeddios.tistory.com/270 이 블로그를 참고하면 IBInspectable과 IBDesinable 에 대한 이해도를 높일 수 있다. UIView를 활용할 때 테두리에만 디자인을 추가하고자 하는 경우가 생길 수 있다. 이 때의 borderWidth, borderColor를 지정하는 방법에서 두 가지를 사용한다.

 

borderWidth 테두리 넓이를 지정하기 위해 새로운 cocoaTouch 파일을 만들고 View 에 할당한다. 이 코코아 터치 파일에서 @IBInspectable 을 활용하면 set연산을 스토리보드의 인스펙터에서 바로 속성을 변경할 수 있다. 추가하려는 속성은 연산 (get, set)이 가능한 프로퍼티여야 한다! 이렇게 테두리의 넓이를 스토리보드 상에서 지정할 수 있도록 IBInspectable이 도와줄 수 있다.

 

borderColor 또한 IBInspectable을 지정해주면 스토리보드에서 색깔을 지정할 수 있다. 그러나 색깔의 변화를 바로바로 스토리보드 상에서 확인할 수는 없다. IBInspectable만 지정하면 런타임에만 속성이 적용되는 것을 볼 수 있다. 따라서 IBDesinable을 코코아터치 클래스의 상단에 선언함으로써 스토리보드에서 라이브로 바로바로 변화를 볼 수 있도록 할 수 있다.

 

다만 무분별하게 많이 사용하게 된다면 스토리보드이 로딩이 느려질 수 있다.

 

참고 : https://zeddios.tistory.com/270

https://babbab2.tistory.com/39