목록iOS (106)
大器晩成

UIKit에서 UILabel을 사용할 경우 패딩 속성이 없어 View를 만들고 View안에 Label을 넣어서 관리하는 경우가 종종 있습니다.불편함 때문에 찾다 보니 UILabel에도 패딩이 적용할 수 있어 간단하게 작성해보려고 합니다. 첫 번째 레이블과 두 번째 레이블은 패딩이 적용되었으며, 세 번째 레이블은 적용되지 않은 상태입니다. 커스텀하게 사용하기 위해서 Apple에서 제공하는 drawText 메서드를 통해, 기본 Padding을 지정해 줄 수 있습니다.final class PaddingLabel: UILabel { private let padding = UIEdgeInsets(top: 16.0, left: 16.0, bottom: 16.0, right: 16.0) ..
프로토콜의 확장 프로토콜을 채택한 타입에 제공하기 위해서 메서드, 초기화, 서브 스크립트, 연산 프로퍼티들은 확장에서 구현할 수 있습니다.protocol Bird { func fly() //Withness Table func sit()}class Eagle: Bird { }class Sparrow: Bird { func fly() { print("참새가 날고 있습니다.") } func hunt() { print("참새가 사냥 중입니다.") }}extension Bird { func fly() { print("새가 날고 있습니다.") } func sit() { print("새가 앉아 있습니다."..
[어트리뷰트 키워드]ex. @available, @objc, @escaping 등 어트리뷰트는 컴파일러에게 알려주는 신호이자, 추가적인 정보를 제공합니다.선언에 대한 추가정보 제공타입에 대한 추가정보 제공https://bbiguduk.gitbook.io/swift/language-reference/attributes 속성 (Attributes) | Swift bbiguduk.gitbook.io //Test 클래스는 iOS 10.0 버전 이상에서만 읽을 수 있음// 1. 선언데 대한 추가 정보 제공@available(iOS 10.0, *)class Test {}// 2. 타입에 대한 추가 정보 제공func test(completionHanlder: @escaping() -> ()) {} @objc p..

프로토콜도 상속이 가능합니다.프로토콜의 경우 상속과 다르게 다중 상속이 가능합니다.-> 여러 가지 요구사항들의 나열protocol Bird { func fly() func sit()}protocol Animals { func eat() func sleep()}protocol Eagle: Bird, Animals { //func fly() { } //func sit() { } //func eat() { } //func sleep() { } func hunt() }class baldEagle: Eagle { func fly() { } func sit() { } func eat() { } func s..