iOS/UIKit 12

[AutoLayout] Hugging과 Resistance (feat. intrinsic content size)

Q. iOS Application 개발 과정에서 intrinsic content size, content hugging, compression resistance의 정의와 관계, 사용 방법에 대해서 Swift 코드와 함께 설명해 줘 A. iOS 애플리케이션 개발에서 뷰의 크기와 레이아웃을 다루는 것은 중요한 부분입니다. 1. intrinsic content size intrinsic content size는 뷰의 내용물(content)의 크기에 대한 정보를 뜻합니다. 예를 들어, UILabel의 intrinsic content size는 텍스트의 길이와 폰트 크기에 따라 결정됩니다. 이때 뷰의 크기는 내용물(content)의 크기와 동일하게 설정됩니다. let label = UILabel() label...

iOS/UIKit 2023.04.24

[iOS / UIKit] @IBDesignable과 @IBInspectable

Q. iOS Application 개발 과정에서 @IBDesignable과 @IBInspectable에 대해서 설명해 줘 A. @IBDesignable과 @IBInspectable은 Interface Builder에서 뷰를 디자인하고 구성할 때 사용되는 어노테이션입니다. @IBDesignable은 커스텀 뷰 클래스에 적용되며, Interface Builder에서 해당 클래스를 선택하면 해당 뷰의 레이아웃과 디자인을 실시간으로 미리 볼 수 있게 해줍니다. 이를 위해 해서는 해당 뷰 클래스에 '@IBDesignable' 어노테이션을 추가하고, Interface Builder에서 해당 뷰를 사용할 때 미리보기를 위해 사용될 코드를 'prepareForInterfaceBuilder()' 메서드에 작성해야 합니다..

iOS/UIKit 2023.04.24

[iOS / UIKit] Notification과 Delegate으로 Data를 주고받는 것에 관하여

안녕하세요! 앞서 두 글을 소개한 바 있습니다! (1) Notification을 활용하여 ViewController 간 Data 전달하기 https://tdcian.tistory.com/355 [iOS / UIKit] Notification을 활용하여 ViewController간 Data 전달하기 안녕하세요~ 오늘은 Notification을 활용하여 두 ViewController 사이에 Data를 주고받는 방식을 한 번 알아봅시다! 모달 방식으로 보여지는 SendingViewController의 텍스트필드에 내용을 입력하고 'Send Data' tdcian.tistory.com (2) Delegate을 활용하여 ViewController간 Data 전달하기 https://tdcian.tistory.co..

iOS/UIKit 2023.04.10

[iOS / UIKit] Delegate을 활용하여 ViewController간 Data 전달하기

안녕하세요~ 오늘은 Delegate을 활용하여 두 ViewController 사이에 Data를 주고받는 방식을 한 번 알아봅시다! 모달 방식으로 보여지는 SendingViewController의 텍스트필드에 내용을 입력하고 'Send Data' 버튼을 클릭하면 해당 내용이 ReceivingViewController의 중앙에 있는 Label을 업데이트 시킵니다. 어떻게 만들었는지 바로 코드 보여드리겠습니다! (1) 데이터를 받아 화면 중앙의 Label을 업데이트 시키는 ReceivingViewController입니다. (2) TextField에 입력된 내용을 Notification을 통해 ReceivingViewController로 전달하는 SendingViewController입니다. 전체 소스코드가 ..

iOS/UIKit 2023.04.10

[iOS / UIKit] Notification을 활용하여 ViewController간 Data 전달하기

안녕하세요~ 오늘은 Notification을 활용하여 두 ViewController 사이에 Data를 주고받는 방식을 한 번 알아봅시다! 모달 방식으로 보여지는 SendingViewController의 텍스트필드에 내용을 입력하고 'Send Data' 버튼을 클릭하면 해당 내용이 ReceivingViewController의 중앙에 있는 Label을 업데이트 시킵니다. 어떻게 만들었는지 바로 코드 보여드리겠습니다! (1) 데이터를 받아 화면 중앙의 Label을 업데이트 시키는 ReceivingViewController입니다. (2) TextField에 입력된 내용을 Notification을 통해 ReceivingViewController로 전달하는 SendingViewController입니다. 전체 소스..

iOS/UIKit 2023.04.10

[iOS / UIKit] How to add 'done' button on keyboard

UITextField나 UITextView 우측 상단에 '완료' 버튼을 넣는 방법을 알아봅시다! 기본적으로 이렇게 키보드가 올라왔을 때는 아무런 버튼이 없습니다. 여기에 타이핑을 끝낸 후 키보드를 내릴 '완료' 버튼을 달면 이렇게 보입니다! 어떻게 만들었을까요? 바로 코드를 봅시다! 짐작하시겠지만 UITextField뿐만 아니라 UITextView에도 같은 방식으로 적용 가능하십니다! GitHub에 전체 Code 올려두었습니다! https://github.com/TDCIAN/HowToAddDoneButtonOniOSKeyboard GitHub - TDCIAN/HowToAddDoneButtonOniOSKeyboard Contribute to TDCIAN/HowToAddDoneButtonOniOSKeyboa..

iOS/UIKit 2023.03.06

[iOS / UIKit] How to use Action Sheets

iOS에서 제공하는 액션 시트 활용법에 대해 알아봅시다! https://developer.apple.com/design/human-interface-guidelines/components/presentation/action-sheets/ Action sheets - Presentation - Components - Human Interface Guidelines - Design - Apple Developer Action sheets An action sheet is a modal view that presents choices related to an action people initiate. DEVELOPER NOTE When you use SwiftUI, you can enable action sh..

iOS/UIKit 2023.03.05

[iOS / UIKit] How to detect when the application state become foreground from the background in ViewController not SceneDelegate

안녕하세요! 오늘은 앱이 background 상태에 있다가 foreground로 올라오는 것을 SceneDelegate가 아니라 ViewController에서 확인하는 방법을 알아봅시다! 다들 아시다시피 SceneDelegate를 통해 우리는 앱이 Background에서 Foreground로 넘어오는 것을 확인할 수 있습니다. 물론 그 반대도 가능합니다! 하지만 특정 ViewController에서 Foreground로 넘어오는 것을 확인하는 게 필요한 상황이 있죠? 바로 알아봅시다! willEnterForegroundNotification 옵저버를 추가해주니 ViewController에서 foreground로 들어오는 상황을 notify 해주는 게 보이네요! 그럼 background로 나가는 것도 알 수..

iOS/UIKit 2023.03.03

[iOS / UIKit] How to change UIPickerView Selected Background Color

안녕하세요! 오늘 다뤄볼 주제는 UIPickerView의 Selected Row 색상을 변경하는 것입니다! 위 시뮬레이터에서 보여지는 뷰들에 대한 코드를 먼저 보여드리겠습니다! BEFORE 코드로 보시는 바와 같이 색상에 대해 별도로 설정해준 것이 없음에도 불구하고 아래와 같이 배경색이 설정되어 있는 게 보입니다. 아마 여러분들은 여러분들이 원하는 디자인이 따로 있으시겠지요? 백그라운드 색상을 변경해 봅시다! AFTER (System Yellow Color) 48~50번 Line의 Code를 주목해 주세요! 아마 높은 확률로 여러분은 아예 저 배경색을 지워버리고 싶으실 겁니다. Clear 색상을 적용해 봅시다! AFTER (Clear Color) 48~50번 Line의 Code를 주목해 주세요! 전체 C..

iOS/UIKit 2023.03.02