코드베이스로 UI를 만들다가 버튼이 안먹히는 케이스가 있어서 잘 모르던 부분을 공유합니다. 화면은 다음과 같습니다. 여기서 C버튼이 제대로 안눌리는 문제가 있었는데요. 회색뷰 위에 노란 뷰를 만들고 노란뷰 안에 a b c 버튼을 추가했습니다. 사실 노란뷰가 색이 없어서 안보이는상태였는데요. 노란뷰에 addSubview를해서 C버튼이 그려진상태인데 C의 아랫부분은 노란뷰에 들어가지 않습니다. 아래 코드를 통해서 터치 이벤트를 확인할 수 있는데요. override func touchesBegan(_ touches: Set, with event: UIEvent?) { print(#function) } C버튼의 아랫부분을 터치하면 touchesBegan(_:with:) 가 출력됩니다. 버튼이 아니라 Custom..
swift 에서 제공하는 퍼센트 인코딩 옵션이 있습니다. 그런데 인터넷에 잘못된 정보가 너무 많더라구요.. 직접 확인하실 수 있는 코드를 소개합니다. extension CharacterSet { func allCharacters() -> [Character] { var result: [Character] = [] for plane: UInt8 in 0...16 where self.hasMember(inPlane: plane) { for unicode in UInt32(plane)
제플린 등에서 제공하는 그림자 요소들을 쉽게 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..