반응형

iOS/코드조각 121

[iOS, Swift] Object to Dictionary 형변환

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. extension Encodable { // object to Dictionary var toDictionary: [String: Any]? { guard let object = try? JSONEncoder().encode(self) else { return nil } guard let dictionary = try? JSONSerialization.jsonObject(with: object, options: []) as? [String: Any] else { return nil } return dictionary } } let parameter = model.toDictionary 이 글에서는 Swift에서 E..

iOS/코드조각 2023.03.24

[iOS, Swift] 싱글턴 구현

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. class UserInfo { static let shared = UserInfo() private init() { } } 싱글턴 패턴은 객체지향 디자인 패턴 중 하나로, 어떤 클래스가 최대 1개의 인스턴스만 가지고 있도록 보장하는 것입니다. 이를 통해 객체의 생성과 파괴가 지나치게 빈번하게 일어나지 않도록 하고, 메모리 사용량을 줄이는 등의 이점을 얻을 수 있습니다. 위의 코드 조각에서는 UserInfo 클래스를 싱글턴으로 구성하였습니다. static let shared를 이용하여 UserInfo 클래스의 인스턴스를 단 하나만 생성할 수 있도록 하였고, private init()으로 객체 생성을 외부에서 할 수 ..

iOS/코드조각 2023.03.23

[iOS, Swift] Any to String 형변환

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. let text: String = String(describing: sender.userInfo!["text"]!) Notification userInfo 타입이 [AnyHashable: Any]? 이어서 밸류 값 Any 타입을 형변환 해주었습니다. 위 코드에서 `sender.userInfo!["text"]!` 부분은 Notification 객체에서 userInfo 딕셔너리로부터 "text" 키에 해당하는 값을 가져오는 부분입니다. 그러나 이 값은 Any 타입으로 반환됩니다. Any 타입은 Swift의 모든 타입을 나타낼 수 있는 타입으로, 타입 안정성을 보장하지 않습니다. 따라서 이 값을 String으로 사용하려..

iOS/코드조각 2023.03.22

[iOS, Swift] UILabel Highlight 효과주기

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. label.isHighlighted = true label.highlightedTextColor = UIColor.red 위 코드는 iOS 앱에서 라벨의 하이라이트 텍스트 색상을 빨간색으로 설정하는 예시입니다. iOS 개발을 하다보면 라벨의 텍스트 색상을 변경해야 할 때가 있습니다. 예를 들어, 라벨을 탭하면 텍스트 색상이 바뀌게 하고 싶은 경우가 그렇습니다. 그럴 때, 위의 코드를 참조하여 라벨의 하이라이트 텍스트 색상을 빨간색으로 설정할 수 있습니다. 이 코드를 활용하면 원하는 색상으로 텍스트 색상을 바꿀 수 있습니다.

iOS/코드조각 2023.03.19

[iOS, Swift] UILabel 여러 줄 표현하기

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. UILabel은 iOS 앱에서 많이 사용되는 UI 컴포넌트 중 하나입니다. 하지만 한 줄의 text만을 표시하기 때문에 text가 길어지면 너비가 부족해져서 표시되지 않는 경우가 있습니다. 이때 numberOfLines 속성을 사용하면 text가 여러 줄로 표현될 수 있습니다. numberOfLines 속성은 Label의 text가 차지할 수 있는 최대 줄 수를 정의하는데, 0으로 설정하면 필요한 만큼의 textLine을 표현할 수 있습니다. 더 복잡한 텍스트의 경우, UITextView를 사용하는 것이 더 적합할 수 있습니다. UITextView는 text를 수정할 수 있기 때문에, 사용자로부터 입력을 받아야 할..

iOS/코드조각 2023.03.18

[iOS, Swift] UILabel 밑줄 추가하기

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. NSAttributedString 클래스는 문자열에 다양한 스타일을 적용할 수 있는 클래스입니다. 이 클래스를 사용하면 문자열의 특정 부분에 대해 폰트, 색상, 기울임 등의 스타일을 지정할 수 있습니다. NSAttributedString의 인스턴스를 생성하려면 문자열과 스타일을 딕셔너리 형태로 전달해야 합니다. 이 때, 스타일은 NSAttributedString.Key 열거형의 값으로 전달됩니다. 이 열거형은 다양한 스타일 옵션을 제공하며, 예를 들어 폰트, 색상, 밑줄, 중앙선 등의 스타일을 지정할 수 있습니다. NSAttributedString 클래스의 Key 열거형 중에서도 NSUnderlineStyle 속성..

iOS/코드조각 2023.03.17

[iOS, Swift] RunLoop 사용하기

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. RunLoop은 iOS 애플리케이션에서 이벤트 처리를 위한 핵심 메커니즘 중 하나입니다. 이 메커니즘은 쓰레드를 대기 상태로 만들거나, 타이머를 실행하거나, 입출력 이벤트를 처리하는 데 사용됩니다. RunLoop은 앱의 UI 쓰레드를 유지하면서 동시에 다른 쓰레드에서 작업을 처리할 수 있도록 해줍니다. UI 쓰레드에서 사용자 입력을 처리하면서 백그라운드 쓰레드에서 네트워크 작업을 처리할 수 있습니다. RunLoop은 기본적으로 이벤트 루프로 구성되어 있으며, 이벤트가 발생할 때까지 대기합니다. 이벤트가 발생하면 해당 이벤트를 처리하고 다시 대기 상태로 돌아갑니다. RunLoop 클래스를 사용하여 이벤트 루프를 만들..

iOS/코드조각 2023.03.15

[iOS, Swift] 코드로 뷰 작성하기(UIKit, Constraint)

iOS 15, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. 이번 글에서는 Swift 코드로 뷰를 작성하는 방법에 대해 알아보겠습니다. 뷰를 코드로 작성하면 Interface Builder를 사용하는 것보다 더 세밀한 제어가 가능합니다. 그리고 Constraints를 활용하여 뷰를 자동으로 정렬하는 방법도 함께 알아보겠습니다. 1. 뷰 작성하기 Swift 코드로 뷰를 작성하는 방법은 매우 간단합니다. 먼저, UIView 클래스를 상속받은 새로운 클래스를 만듭니다. 그리고 그 클래스 내부에서 필요한 뷰들을 생성하고, addSubview() 메소드를 사용하여 부모 뷰에 추가합니다. class MyView: UIView { let titleLabel = UILabel() let de..

iOS/코드조각 2023.03.14

[iOS, Swift] 네비게이션바 아이템 숨기기

Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. iOS 앱 개발에서 네비게이션 바는 화면 상단에 위치하며, 화면 이동과 앱 기능 사용에 매우 중요한 UI 요소입니다. 네비게이션 바는 타이틀, 왼쪽 버튼, 오른쪽 버튼 등 다양한 UI 요소를 포함할 수 있습니다. 이 글에서는 Swift를 사용하여 iOS 앱에서 네비게이션 바 아이템을 숨기는 방법을 알아보겠습니다. // 네비게이션 바 이미지 숨기기 self.navigationItem.titleView?.isHidden = true // 첫번째 네비게이션 바 아이템 이미지 숨기기 self.navigationItem.rightBarButtonItems![0].customView?.isHidden = true // 두번째 네비게이션 바 아..

iOS/코드조각 2023.03.11

[iOS, Swift] TableView에 모든 셀 가져오기

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. TableView에서 모든 셀을 가져오는 가장 간단한 방법은 TableView의 visibleCells 속성을 사용하는 것입니다. 이 속성은 현재 TableView에 표시되는 모든 셀의 배열을 반환합니다. let cells: [UITableViewCell] = tableView.visibleCells 위와 같이 cell을 가져올 수는 있지만, 보통 UITableViewCell을 상속받는 셀을 사용합니다. 그래서 CustomTableViewCell 타입으로 받으려면 형변환을 해주어야합니다. 아래와 같이 compactMap 함수를 사용하여 커스텀 타입으로 형변환할 수 있습니다. let customCells = table..

iOS/코드조각 2023.03.10
반응형