본문 바로가기

난 iOS개발자/iOS

UITextField LeftPadding

728x90

텍스트 필드에 디자인을 적용하다보면 입력되는 텍스트 옆으로 padding이 들어가야 할 경우가 생긴다.

 

이때 UITextField의 leftView를 사용해서 간단하게 padding을 넣어줄 수 있다.

 

leftView에 대한 설명을 한 번 보자면...

 

TextField의 leftView를 설명한 부분

왼쪽 공간에 자리한 leftView가 있는데 이것은 optional이므로 

여기에 내가 원하는 만큼 넓이를 가진 view를 넣어주게 되면 그 공간이 띄어진 것 처럼 보여질 수 있다.

 

이 때 텍스트 필드의 색상에 따라 삽입되는 paddingView의 background색상을 맞춰줘야하는것은 필수! clear컬러로 둬서 뒤가 보이도록 두는것도 방법이다.

그리고 leftview에 이미지나 또 다른 view를 add하여 디자인 요소를 더욱 꾸며줄수있다. 

설명에서는 TextField에 어울리는 돋보기 이미지가 들어가는것을 예로 들어주고 있다.

 

또 leftView가 보여지는 상황을 설정할 수 있다. 

이것을 leftViewMode라는 이름으로 설정해줄 수 있는데, 들어가는 값으로는 열거형으로 

아래와 같다.  설명은 딱히 필요가 없을듯 하니 패스!

public enum ViewMode : Int {

        case never = 0

        case whileEditing = 1

        case unlessEditing = 2

        case always = 3
    }

 

결론적으로 아래와같이  사용하면 편하게 padding을 넣어줄 수있다. 입맛대로 바꾸는건 각자! 

extension UITextField {
    
    func addLeftPadding(_ padding:CGFloat) {
        let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: padding, height: frame.height))
        self.leftView = paddingView
        self.leftViewMode = .always
    }
}

 

728x90