본문 바로가기
반응형

extension5

Swift함수, 초 단위 값을 hh:mm으로 표현하기(with CustomStringConvertible) 오늘은 스위프트의 함수를 하나 정리해서 올려 두고자 한다. 어제 UI작업을 하던 중, 서버로부터 받은 7200초라는 값을 시:분으로 표현을 하고자 괜찮은 방법이 있는지 검색을 해보니 적당한 extension과 protocol이 있어 정리를 해 둔다. CustomStringConvertible 이란 프로토콜은 사용자기 지정한 문자열로 변환이 가능한 프로토콜이다. 이 프로토콜을 정의하고 시와 분으로 나눠 사용자 정의 서식 문자열로 리턴하면 깔끔하게 사용할 수 있다. public struct TimeParts: CustomStringConvertible { public var hours = 0 public var minutes = 0 public var description: String { return NS.. 2022. 6. 9.
Swift Protocol Extension 예제와 사용 절차 책의 예제 코드를 기반으로 프로토콜을 선언하고 확장하며, 프로토콜을 따르는 타입(클래스, 구조체)에서 사용하기까지에 대해 간단하게 나열을 한다. protocol TextValidation { var regExFindMatchString: String {get} var validationMessage: String {get} } protocol을 정의하면서 프로퍼티 2개를 정의했다. 다음은 프로토콜을 확장하면서 1개의 연산프로퍼티와 2개의 메서드를 확장(추가) 정의한다. extension TextValidation { var regExMatchingString: String { get { return regExFindMatchString + "$" } } func validateString(str: Str.. 2021. 7. 14.
extension Double - String 통화 기호(소수점 두 자리 반올림) 제목의 요약과 같이 double값을 통화를 나타내는 값인 String타입으로 변환하는 메소드를 추가하기 위해 Double 타입을 확장하는 예제. 이 메서드는 소수점 두 자리로 반올림하고 통화 기호를 추가하는 예제. extension Double { func currencyString() -> String { let divisor = pow(10.0, 2.0) let num = round(self * divisor).rounded() //제수 return "$\(num)" } } 확장에는 저장 프로퍼티를 추가할 수 없지만, 연산 프로퍼티는 추가할 수 있다. extension Int { var squared: Int { return self * self } } 정수를 제곱한 값을 얻기 위해 연산 프로퍼티로 .. 2021. 7. 14.
Swift extension CALayer, UIView border Swift extension CALayer, UIView border 어제 작업을 하다보니 UIView, UILabel, UIButton, 등 UIView를 상속 받은 컨트롤들의 UI작업을 하다 보면 다양하게 밑줄, 옆줄, 윗줄 등을 넣어야하는 경우가 있다. 매번 이미지파일로 대체하기 어려워 Objective-C로 카테고리로 빼서 사용하던 부분을 구글 검색을 해보니 다양한 리소스가 있어 public extension으로 뽑아서 프로젝트에서 사용할 수 있도록 구성했다. 아주 만족스럽다. import Foundation import UIKit public extension CALayer { func addBorder(_ arr_edge: [UIRectEdge], color: UIColor, width: CG.. 2018. 5. 4.
UIColor to Hex func 헥사 코드 색상을 변환해주는 함수 예. func UIColorFromRGB(rgbValue: UInt) -> UIColor { return UIColor( red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, blue:CGFloat(rgbValue & 0x0000FF) / 255.0, alpha:CGFloat(1.0) ) } 사용 시 : let color = UIColorFromRGB(rgbValue: 0xDDFFCC); Objective-C의 경우도 있다. 보통 매크로로 정의해 두고 전역에서 가져다 사용하는 방식인데 UIColor의 extension으로 추가해서 사용해도 편.. 2018. 3. 5.
반응형