티스토리 뷰

반응형

안녕하세요 :) Zedd입니다.

오늘은.................제가 조금 고생했던 ㅎ_ㅎ...Textfield에 Static Prefix만들기입니다.

시작할게요. 



UITextfield에 Static Prefix를 넣고싶다면...



네..ㅎㅎ...

구글에 Textfield static prefix라고 치면

이 글이 나오죠.

네...코드를 보면...보면..진짜....얼마전에 이 글을 쓴것도 다 이거 쓰다가 나비효과로.....쓰게 된 글입니다.

실험 몇가지를 하다가 ㅎㅎ..


그래 range.location + range.length를 더한게  max length를 넘으면 왜 false야?????????이런 궁금증부터 시작해서...일단 코드가 굉장히 더럽죠?

제가 이렇게 짜서 남한테 보여줬다고 생각해봅시다.

그 사람이 이걸 보고 "아 이건 지우지 못하는 Prefix를 만들어주는 작업이구나! 정말 대단할걸..!!!"이라고 생각하게 만들 수 있을까요?

제가 볼땐 이게 지우지 못하는 Prefix를 만든다는 것도 모를지도 모릅니다...


그래요..이렇게 해도 되지만...누군가의 도움을 받아 다른 방법을 찾았습니다..!!

바로 이겁니다.

Textfield안에 label넣기...!!!!!!!!!!!!!!!!!!!!!!!!!!111!

진짜 제가 왜 이생각을 못했을까여ㅛ 진짜..


Q : ;;;;아니 Textfield가 왼쪽에서 시작하는데.....저 Prefix 길이만큼 떨어져 있어야 할 거 아니에요....;;

A : 네 :) Textfield에 Padding을 주면 됩니다.


 viewDidLoad에 아래 코드를 추가해주세요.,


  1. let leftPaddingView = UIView(frame: CGRect(x: 0, y: 0, width: myPrefixLabel.frame.width, height: 44))


    self.myTextfield.leftView = leftPaddingView


    self.myTextfield.leftViewMode = .always


paddingView를 만드는 작업에 집중을 해주셔야 하는데요. width를 제 prefixLabel의 width를 준 거 보이시죠?

이렇게 해주면...!!!

조금 감쪽같나요?????XD....


당연히 지울 수 없겠죠?...


이런생각이 드실 수 있겠네요.

"이런...너무나도 원시적이랄까...전혀 개발자스럽지않아.."


제가 절대로 


이렇게 하지 말라는게 아닙니다. 근데..너무 코드가 복잡해져서..

저는 Label을 붙히는게 나쁘지 않다고 생각해요! 그냥 이런방법도 있다~~라고 생각해주시면 좋을 것 같아요.

그리고 이렇게 Label로 하게 되면 엄청난 단점이 하나 존재하는데 바로 Constraint입니다. 




TextField가 Label을 품는? 그런 형태는 절대 아니구요.

그냥 Textfield위에다가 Label을 얹힌거?라고 보시면 될 것 같아요. 

그래서 SuperView와의 관계처럼 그런식으로 Constraint를 못줍니다..



뭔가 좀 안맞죠? 저 Label위치에 대한 나노 컨트롤이 필요합니다.

나노컨트롤으로만 하면 안되겠죠..?그래서 


저는 View안에 Textfield와 Label을 넣어서 Constraint를 줬어요.


사실 이 코드도 함수로 따로 만들어서 Bool을 리턴하도록 해주면 이 Textfield자체에 대한 코드는 깔끔해보이겠죠?

대신 함수 이름을 아주 잘 지어야겠죠.ㅎㅎ..


아무튼 그냥!! 이런방법도 있다는 거고 ㅎㅎ...이런 방법을 보면 정말 화가난다하시는 분들은..개선할 방법을 댓글로 달아주시면 감사하겠습니다 :)

사실 

반응형