SwiftUI Modifier 적용 순서

이건준·2022년 3월 21일
0

문제제기

-> 처음 SwiftUI를 다뤘을때 분명히 기존 뷰에 메소드를 사용할 수 있었는데 오류가 발생할때 오류 문구중 View프로토콜과 해당 뷰에 관한 내용이였다

-> 오늘은 이러한 오류의 원인이였던 Modifier의 적용순서에 대해서 알아볼 것이다 !!

문제해결

1. 뷰 프로토콜의 공용 수식어를 사용하기전에 해당 뷰의 Modifier를 우선 적용하라 !!

-> SwiftUI에서 모든 뷰들은 View 프로토콜에 대한 Modifier와 그 뷰에 해당하는 Modifier를 가진다


-> 위처럼 Text 뷰에 정의된 식별자는 Text로 View 프로토콜에 정의된 식별자는 View를 반환하고있다

-> 즉 동시에 가지고있는것도 있지만 이와는 다르게 한쪽만 가지고있는 경우도 존재하게된다

-> 이게 무슨말이냐면은 해당 뷰에 대한 식별자 선언순서가 매우매우 중요하다는 의미이다 !!!!!!

-> 위의 경우를 보게되면 padding, font 식별자는 View를 반환하게되는데 bold식별자는 Text 뷰에 존재하는 식별자이기때문에 사용할 경우에 오류를 발생하게된다

Q. 그러면 어떻게 적용해야할까요 ??

-> 이것이 위 타이틀인데 뷰 프로토콜의 식별자를 사용하기 이전에 해당 뷰의 식별자를 먼저 적용시키는것이다

2. 식별자 순서에 유의하라 !!

-> SwiftUI에서는 해당 뷰에 식별자를 적용하게되면 그 식별자가 뷰를 감싼 새로운 뷰를 만들어내고 다시 식별자를 적용하면 그 식별자가 기존 식별자가 적용된 뷰를 다시 감싸 뷰를 생성하는 구조이다

-> 위와 같은 이유에서 식별자의 선언순서에 따라서 결과가 달라질 수 있다

-> 위 코드를 보면 위에서 말한 이유가 이해가 될것이다

0개의 댓글