개발/SwiftUI
How to disable the overlay color for images inside Button and NavigationLink
까칠코더
2019. 11. 18. 13:40
반응형
Hacking with Swift 사이트의 강좌 번역본입니다.
How to disable the overlay color for images inside Button and NavigationLink
기본적으로, NavigationLink 또는 Button 내부에 그린 이미지는 예상한데로 동작하지 않습니다: 전체 이미지는 불투명한 파란색으로 덮혀있거나 뷰에 있는 강조 색상으로 표시될 것입니다.
이를 고칠수 있는 2가지 방법이 있습니다; 원하는 동작을 선택합니다.
첫번째, 다음과 같이 PlainButtonStyle()과 함께 buttonStyle()modifier을 사용할 수 있습니다.
NavigationView {
NavigationLink(destination: Text("Detail view here")) {
Image("YourImage")
}
.buttonStyle(PlainButtonStyle())
}
또는 일반 버튼의 경우에는 다음과 같이 합니다.
Button(action: {
// your action here
}) {
Image("YourImage")
}
.buttonStyle(PlainButtonStyle())
해당 modifier를 사용해서, 원래 이미지를 예상했던데로 보여줄 것입니다.
대안으로, 또한 약간 다른 결과를 얻으려면, renderingMode() 모드 modifier을 사용할 수 있습니다.
NavigationView {
NavigationLink(destination: Text("Detail view here")) {
Image("YourImage")
.renderingMode(.original)
}
}
차이점은 미묘하지만 중요합니다: List 내부에 Button을 사용하는 경우에, .buttonStyle(PlainButtonStyle())를 사용하는 것은 버튼의 컨텐츠 주위에 있는 공간만 탭할 수 있다는 의미이며, 반면에 renderingMode(.original)을 사용하는 경우에 모든 셀이 탭 가능한 상태가 유지됩니다.
반응형