본문 바로가기

분류 전체보기224

커스텀 UIButton 터치 인식 안되는 경우 UIButton도 커스텀하여 사용하는 경우가 많은데, 만든 버튼이 특정 부분만 터치가 인식되거나 전체적으로 터치가 인식되지 않기도 합니다. 그럴 때는 버튼을 구성하는 UIView들의 `isUserInteractionEnabled` 프로퍼티를 false로 바꾸어주면 됩니다. final class AppThemeButton: UIButton { private let containerView: UIView = { let view = UIView() view.isUserInteractionEnabled = false // 이 부분 view.backgroundColor = .clear view.translatesAutoresizingMaskIntoConstraints = false return view }() p.. 2023. 12. 6.
String / Array 뒤집기 1. Array 뒤집기 var myArr1 = [1,2,3,4] // 1. reverse(): 요소들의 위치를 반전 시켜라. myArr1.reverse() // -> myArr1 자체의 요소 위치가 변경됨. print(myArr1) // [4,3,2,1] var myArr2 = [1,2,3,4] // 2. reversed(): 요소들의 위치가 이미 반전이 됨. let reversed = myArr2.reversed() // -> 요소 위치가 반전된 값이 반환됨. print(myArr2) // [1,2,3,4] print(reversed) // [4,3,2,1] NOTE: reverse() 메서드는 mutating 메서드이기 때문에 Struct인 Array의 요소에 변경을 줄 수 있는 것! https://.. 2023. 11. 29.
UnicodeScalar Swift에서 Character는 한개 이상의 UnicodeScalar로 구성되어 있습니다. Unicode는 숫자와 글자 (key & value)가 1:1로 맵핑된 형태의 코드입니다. 숫자 65는 대문자 A 이런 식으로 맵핑이 되어있습니다. 전세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식입니다. 참고로 "U+"라는 접두어가 붙어 있으면 유니코드를 의미합니다. 만일 특정 String을 unicode로 사용하고 싶다면, let myString = "A" let scalar:Unicode.Scalar? = UnicodeScalar(myString) UnicodeScalar 이니셜라이저 파라미터로 String을 넘겨주면 됩니다. Character는 파라미터로 넘길 수 없어서, String으로 변.. 2023. 11. 28.
String index 값 정수로 얻기 String 변수에 firstIndex(of:) 혹은 startIndex등 index와 연관된 함수로 얻게 되는 값의 타입은 String.Index 입니다. Array의 index를 얻듯이 Int 값으로 얻고 싶다면 distance(from:to:)를 사용하면 됩니다. let text = "abcdefg" let indexOfA = text.firstIndex(of: "a")! // 상황에 맞춰서 적절한 Optional 처리 필요 let intIndex = text.distance(from: text.startIndex, to: indexOfA) print(intIndex) // Prints 0 2023. 11. 28.
입력 방법 및 자주 사용되는 functions 입력 받기 기본 readLine()으로 입력 받음. readLine()은 Optional(String) 타입 1. String 입력 받기 let myString = readLine()! //입력이 확실한 경우 강제 언래핑 사용. 2. Int 입력 받기 let myInt = Int(readLine()!)! // Int 이니셜라이저도 Optional(Int)를 반환하므로 언래핑 필요 3. 공백으로 구분되는 입력 받기 let stringsWithBlanks = readLine()! let stringArray: [String] = stringsWithBlanks.split(separator: " ") let intsWithBlanks = readLine()! let intArray: [Int] = intsWi.. 2023. 11. 25.
pod install 시 진행이 더뎠던 문제 지난번 좋은 사이드 메뉴 라이브러리 중 하나인 https://github.com/jonkykong/SideMenu 를 사용해 보려고 먼저 Example을 확인하기 위해 프로젝트 Clone을 하였음. Cocoapods를 사용하고 있는 프로젝트였기에, pod install을 진행해 준 상황에서, 특정 부분에서 진행이 막히는 문제가 있었음. 최하단에 "Cloning spec repo..." 부분인데, CocoaPodds/Specs가 무엇인지 찾아보니 stackoverflow 에 "Cocoapods will add that source by default if no other source is present. By adding your own source Cocoapods assumes everything ca.. 2023. 11. 15.
반응형