본문 바로가기

iOS - 실무관련92

UINavigationController 보호되어 있는 글 입니다. 2022. 9. 26.
named Color 추가하기 (블로그 주소) https://medium.com/@bhavneetsingh08/apples-new-xcode-feature-named-color-371f59c37137 2022. 9. 24.
PreView(Ver: Xcode14) 1. PreView관련 용어 📌 PinControl 📌 📖 PageControls 📖 ✍🏼 Canvas Controls ✍🏼 (왼쪽부터) - Live: 실시간으로 동작(버튼, 스크롤 등등 작동함) - Seclectable: 실시간으로 동작하지 않음(버튼, 스크롤 등등 작동하지 않음) - Variants - Color Sceheme Variants: Light모드와 Dark모드를 비교해서 보여줌. - Orientation Variants: 세로모드, 가로모드(좌측으로), 가로모드(우측으로)된 화면을 비교해서 보여줌 - Dynamic Type Variants: 지정된 12가지 사이즈에 따른 다양한 UI를 비교해서 보여줌 - Device Settings: 하나의 PreView에서 다크모드로 할건지 안 할건지,.. 2022. 9. 24.
GeometryReader 참고 블로그 - GeometryReader는 무엇일까? 1. 정의 💡 GeometryReader는 그 자체로 ‘View’이며, container 안 View 스스로의 크기와 위치를 함수 정의를 봐도 무슨말인지 모르겠다. 따라서 참고 블로그에서 이해한 내용을 요약해보겠다. View를 구성할 때는 HStack, VStack, ZStack을 적절히 사용해서 만들 수 있다. 때때로 하위뷰들의 위치나 크기(모양)을 직접 조작해야하는 경우가 생긴다. 이때 사용하는 것이 GeometryReader이다. 하위뷰의 별다른 설정이 없다면 상위뷰가 제안해준 곳에 위치한다. 2. GeometryReader 사용해보기 [왼쪽 사진] Text는 특별한 수식어가 없기 때문에 가장 상단에 위치하고 남은 공간을 RightView가 채.. 2022. 9. 23.
왜 @IBOutlet에 didSet으로 설정을 몰아 놓는가? 보호되어 있는 글 입니다. 2022. 9. 20.
List 1. 정의 💡 List는 하나의 열에 여러개의 행으로 표현되는 UI를 구성해 다중 데이터를 쉽게 나열할 수 있도록 구성된 View이다. 2. 사용예시 아래의 예시처럼 Stack처럼 UI를 감싸주면된다. 3. 동적 컨텐츠 [1. Range] List(0.. 2022. 9. 20.
NavigationLink 1. 정의 💡 지정한 목적지로 이동할 수 있도록 만들어진 버튼으로, 뷰를 눌렀을 때 또는 미리 지정된 특정 조건을 만족했을 때 화면전환 2. 사용예시 NavigationLink(destination: ) { 화면전환이 되도록 만드는 버튼의 UI } 2022. 9. 20.
NavigationView 1. 사용법 💡 사용법은 Stack을 사용하는 것처럼 감싸주기만 하면된다. 2. NavigationBarTitle NavigationBarTitle 수식어로 제목을 표현할 수 있다. NavtigationBarTitle은 기본적으로 automatic모드로 설정되어있지만 large, inline모드로 설정이 가능하다. 3. NavigationBarItems BarItem은 NavigationView 내부에서 만드는게 아니라 외부에서 만들어서 navigationBarItems(leading: ,trailing: )을 사용해서 적용해준다. 만약 여러개의 item을 넣고 싶다면?? -> HStack을 사용하자. 4. hidden 수식어 navigationBarHidden - 네비게이션 바 숨김 navigation.. 2022. 9. 20.
UIView 보호되어 있는 글 입니다. 2022. 9. 17.
UIColor 보호되어 있는 글 입니다. 2022. 9. 17.
Float 보호되어 있는 글 입니다. 2022. 9. 17.
String 보호되어 있는 글 입니다. 2022. 9. 17.
Int 보호되어 있는 글 입니다. 2022. 9. 17.
Device관련 Extension 보호되어 있는 글 입니다. 2022. 9. 17.
BaseViewController 보호되어 있는 글 입니다. 2022. 9. 17.
내가 만든 Template 모음 보호되어 있는 글 입니다. 2022. 9. 17.
Button 1. 기본적인 사용방법 Button(action: { //버튼이 터치되었을 때 수행할 작업 }) { Text("Button) // 버튼 UI } 2. 텍스트를 이용해서 버튼 만들기 import SwiftUI struct ContentView: View { var body: some View { HStack(spacing: 10) { // 1) 단순히 텍스트로만 버튼을 표현할 때 Button("B1") { print("B1") } // 2) 먼저 텍스트를 만들고 외곽선을 추가할 때 Button(action: { print("B2") }) { Text("B2") .padding() .background(RoundedRectangle(cornerRadius: 10).strokeBorder()) } // 3) .. 2022. 9. 14.
WidgetKit에 대한 간단한 설명 // 참고 URL: https://zeddios.tistory.com/1088?category=796110 import WidgetKit import SwiftUI // TimelineProvider: Widget의 디스플레이를 업데이트 할 시기를 WidgetKit에 알려주는 타입 struct Provider: TimelineProvider { func placeholder(in context: Context) -> SimpleEntry { SimpleEntry(date: Date()) } // 현재 상태를 나타내는 스냅샷을 가져오는 메소드 func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> ()) { let entry.. 2022. 9. 13.
Image 1. 정의 💡 SwiftUI에서 Image는 UIKit에서 ImageView와 같다. SwiftUI에서 이미지를 다룰 때 알아야할 것은 이미지는 기본적으로 주어진 공간과 관계없이 그 고유의 크기를 유지한다는 것이다. frame 수식어를 사용해도 이미지 원본 크기는 유지하고 뷰가 차지하는 공간만 커진다. (아래 참고) 그래서 이미지 크기를 변경해야하는 경우 resizable 수식어를 적용해야한다. 2. Resizable 💡 이미지 크기를 변경해야하는 경우 resizable 사용 🚧 주의할 점은 Resizable 수식어는 Image에만 적용되기 때문에 frame 수식어보다 먼저 적용되어야한다. 🚧 3. ContentMode 💡 주어진 공간 이외에까지 이미지 확장할 때 사용 UIKit SwiftUI 설명 Sc.. 2022. 9. 7.
WKWebView - 웹사이트의 버튼이 안눌러질 때? //busy version func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { print("scheme: \(navigationAction.request.url?.scheme)") if let url = navigationAction.request.url , ["버튼을 클릭했을 때 출력되는 scheme"].contains(url.scheme) { UIApplication.shared.open(url, options: [:], completionHandler: nil) decisionH.. 2022. 8. 18.
NotificationCenter로 다른 VC 조종하기 NotificationCenter란? NotificationCenter 에 등록된 event 가 발생하면 해당 event에 대한 행동을 취합니다. 앱 내에서 메세지를 던지면 아무데서나 이 메세지를 받을 수 있게 하는 역할을 합니다. 보통 백그라운드 작업의 결과, 비동기 작업의 결과 등 현재 작업의 흐름과 다른 흐름의 작업으로부터 이벤트를 받을 때 사용합니다. NotificationCenter으로 다른 VC 조종하기 1. 데이터를 보내는 VC (본인이 원하는 타이밍에) NotificationCenter.default.post(name: Notification.Name(rawValue: "지정할 이름"), object: nil) 2. 데이터를 받는 VC // 옵저버 등록 NotificationCenter.d.. 2022. 8. 17.
overlay - View 중첩 1. 정의 💡 View의 원본의 공간을 기준으로 기 위에 새로운 View를 중첩해서 쌓는 기능을 하는 수식어 2. 사용방법 1. 기본 사용법 struct CircleImageView: View { var body: some View { Image("turtlerock") .clipShape(Circle()) .overlay { Circle() } } } 기존 ImageView 크기에 맞춰서 검은색(기본값)의 원형 View 생성 2. 크기를 조정한 사용법 struct CircleImageView: View { var body: some View { Image("turtlerock") .clipShape(Circle()) .overlay { Circle() .frame(width: 200.0, height:.. 2022. 8. 10.
.clipShape( ) - 이미지 모양 변경하기 1. 정의 💡 clipShape은 해당 View의 모양을 설정하는 것이다. 2. shape의 종류 Circle() - 원형 Ellipse() - 타원형 Rectangle() - 직사각형 RoundedRectangle(cornerSize: CGSize(width: ,height: )) - 모서리가 둥근 직사각형 RoundedRectangle(cornerRadius: 30): 둥근모서리 2022. 8. 10.
Spacer( ) - UI사이의 간격 만들기 출처 - 서근님 티스토리 1. Spacer의 정의 💡 Spacer( )란 View 사이의 간격을 설정하거나 View의 크기를 확장할 용도로 사용되는 레이아웃을 위한 View이다. 2. Stack 외부의 Spacer VS Stack 내부의 Spacer [Stack 외부의 Spacer] 부모 뷰가 제공하는 공간 내에서 가능한 최대 크기로 확장 시작적 요소를 적용할 수 있는 하나의 뷰로 사용 //스택 외부에서 struct ContentView: View { var body: some View { Spacer().background(Color.blue) //공간 최대 확장. 시각적 요소 표현 가능 } } [Stack 내부의 Spacer] 시각적 요소가 제외되고 단지 공간을 차지하기 위한 역할로만 가능 만약 콘텐.. 2022. 8. 10.
IBSegueAction사용해서 화면전환하기 ✍🏼 상황: 테이블 뷰를 클릭했을 때 화면이 전환되면서 클릭한 cell의 title이 전환된 화면 중앙에 나타난다. ✍🏼 1. 화면구성하기 아래와 같이 화면을 구성해준다. Navigation Controller - TabeView가 있는 ViewController Label이 있는 ViewController 2. Segue연결해주기 아래와 같이 화면을 Segue로 연결해서 화면 전환을 시켜준다. Navigation Controller - TabeView가 있는 ViewController ---(Segue)--- Label이 있는 ViewController 3. IBSegueAction연결하기 + Segue Identifier 입력하기 아래와 같이 Segue를 우클릭해서 IBSegueAction을 만들어주.. 2022. 8. 4.