로그인 기능을 구현할때 빠지지않는 이메일, 패스워드 정규식 검사를 extension 으로 구현했습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
extension String {
    
    // 이메일 정규식
    func validateEmail() -> Bool {
        let emailRegEx = "^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$"
        
        let predicate = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
        return predicate.evaluate(withself)
    }
    // 패스워드 
    func validatePassword() -> Bool {
        let passwordRegEx = "^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8}$"
        
        let predicate = NSPredicate(format:"SELF MATCHES %@", passwordRegEx)
        return predicate.evaluate(withself)
    }
}



기본적으로 이메일이나 패스워드는 String 문자열로 처리하기때문에 extension 은 String으로 구현했고

샘플로 구현되어있는 정규식패턴은 

이메일은 기본적으로 사용되는 @. 패턴으로 구현되어있고

패스워드는 최소8자이상, 대문자, 소문자, 숫자 조합인지 검증하게되어있습니다


더 많은 extension 들은 개인적으로 GitHub에 올려두고 업데이트 및 관리를 하고있습니다.

https://github.com/oper0960/ExtensionsForSwift



해당 함수호출로 해상도에 따라 정해둔 Font size 를 동일하게 보여줄 수 있습니다.

해당 사이즈 통일은 아이폰 6, 6s, 7 의 화면 사이즈인 4.7" 기준(4.7" Screen Width = 375)으로 작성되었습니다.

4.7" 과 같은 비율로 다른 크기의 화면에서도 보여지게 됩니다.


func resolutionFontSize(size : CGFloat) -> CGFloat {
        
    let size_formatter = size/375
    let result = screenWidth * size_formatter
    return result
}




이 방법 외에

AutoLayout 을 사용하여 비율이 유동적인 TextField 나 Label 에 Width 값에 맞춰 Font size 를 조절해주는 옵션이있습니다.


label(textfield).adjustsFontSizeToFitWidth = true;



+ Recent posts