제플린 등에서 제공하는 그림자 요소들을 쉽게 swiftf로 만들어주는 extension입니다. extension CALayer { func applySketchShadow( color: UIColor, alpha: Float, x: CGFloat, y: CGFloat, blur: CGFloat, spread: CGFloat ) { masksToBounds = false shadowColor = color.cgColor shadowOpacity = alpha shadowOffset = CGSize(width: x, height: y) shadowRadius = blur / UIScreen.main.scale if spread == 0 { shadowPath = nil } else { let rect = b..
https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WhatAreFrameworks.html What are Frameworks? What are Frameworks? A framework is a hierarchical directory that encapsulates shared resources, such as a dynamic shared library, nib files, image files, localized strings, header files, and reference documentation in a single package. Multiple applicatio..
PinLayout 원리와 철학 매뉴얼 레이아웃 (auto layout X) 가능한 빠르고 간단하게 완전한 컨트롤: 레이아웃 프로세스의 중간에 있다.(..?) 간략한 문법, 한 줄로 작성 PinLayout 성능 모든 종류의 아이폰에서 매뉴얼 레이아웃과 비슷한 정도의 속도, 오토레이아웃보다 8~12배 빠름 문서 safeAreaInsets 지원 iOS11 의 UIView.safeAreaInsets 지원, 그 이하에서 UIView.pin.safeArea사용 macOS 지원 Right to left languages (RTL) 지원 Edges layout 슈퍼뷰의 edges와의 관계로 위치설정 예) A뷰를 슈퍼뷰에 마진 10씩 주기 viewA.pin.top(10).bottom(10).left(10).right(1..
사용자의 연락처에 접근하는 방법입니다. 1. info.plist에 다음을 추가해주세요. NSContactsUsageDescription 2.import ContactsUI import ContactsUI 3. CNContactPickerDelegate CNContactStore()에서 정보를 가져옵니다. 가져오기 위해서 key를 설정해야합니다. FirstName - 이름 - CNContactGivenNameKey LastName - 성 - CNContactFamilyNameKey Company - 직장 - CNContactOrganizationNameKey phone - 휴대전화 - CNContactPhoneNumbersKey func contactPicker(_ picker: CNContactPicke..