TIL

[Objective C / Xcode / IOS] UISwitch 비율 조절과 동시에 off 상태의 tint color 변경하기

유이 YUI 2024. 9. 11. 16:48

 

일을 하다 보면 불가능해 보이는 것도 해야 되는 경우가 만타

나는 UISwitch의 비율을 조정함과 동시에 off 상태의 tint-color를 특정색으로 변경해야만 했었다.

근데 통상적으로 쓰이는 backgroundColor를 변경한 뒤 cornerRadius를 frame.height의 2로 나누고...어쩌구는

전혀 통하지 않았다...... 구글링하고 GPT를 쥐어뜯었으나... 내 뒷골만 땡길뿐이었다...

 

그러던 도중 찾게 된 한 게시글

 

https://taekki-dev.tistory.com/47

 

[iOS] UISwitch의 offTintColor 변경하기

🪴일반적인 방법 구글링을 하다보면 일반적으로 소개되는 방법은 다음과 같다. layer를 둥글게 만들어주지 않으면 네모 모양으로 칠해지기 때문에 둥글게 깎아줘야 한다. switch.backgroundColor = .blue

taekki-dev.tistory.com

이분께서 진짜 뒤로 넘어가실 뻔한 나를 살려 주셨다

누군가 이 글을 보고 뒷골 잡고 넘어가지 않기를...

 

switch.transform = CGAffineTransformMakeScale(0.8, 0.8);

 

우선 UISwitch의 비율은 위와 같이 변형할 수 있다.

일단 세로와 가로의 비율을 1:1로 맞추지 않으면 토글의 동그라미가 찌부되는 현상이 일어났기에...

참고해 주시면 될 듯합니다

 

그리고 나서는 윗 블로그 분의 코드를 GPT에게 부탁하여 objective C형식으로 변환하였다

 

UIView *backgroundView = switch.subviews.firstObject.subviews.firstObject;
        backgroundView.backgroundColor = 원하는 색깔;

 

 

원하는 색깔 부분에는 UIColor를 넣으시면 됩니다람쥐

 

이렇게 하면 비율을 줄이고 나서도 UISwitch의 배경에 해당하는 부분의 backgroundColor를 직접 컨트롤 하므로, 아무런 문제가 생기지 않는다.......................

 

어렵다 어려워 어지럽다 어지러워 그래도 뭐 어떡해 해야지


 

 

브이하는 사진

오늘도 잘 해냈다!