본문 바로가기
728x90
반응형

SwiftUI11

tvOS에서 화면 좌우(왼쪽, 오른쪽) 화면 분할 및 오른쪽 뷰 포커싱 시 왼쪽 뷰 폭 조정 tvOS에서 좌우로 화면을 분할할 수 있습니다. 뷰 내 두개 뷰를 포함해서 작업할 수 있습니다. 그리고 좌우 뷰 포커싱에 이벤트를 받아서 처리할 수 있습니다. 이 경우 오른쪽 뷰에 포커싱이 갔을때 왼쪽 뷰 폭을 줄입니다.(그림 2.) 그리고 다시 왼쪽 뷰로 포커싱되면 원래 크기로 폭을 늘립니다.(그림 1.) 소스 코드 import SwiftUI struct ContentView: View { @State private var leftViewWidth: CGFloat = 300 var body: some View { HStack { // 왼쪽 뷰 LeftView(onLeftButtonTap: { // 포커싱이 발생하면 왼쪽 뷰 크기를 조절 withAnimation { if(leftViewWidth == 1.. 2023. 11. 23.
[Swift] SwiftUI에서 두 개 뷰에서 @Published, ObservableObject, @StateObjec, @EnvironmentObject를 이용한 데이터 Combine 사용하기 Combine을 사용하는 가장 쉬운 방법 중 하나로, ObservableObject 프로토콜 클래스에서 사용될 때 자동으로 데이터 변경을 추적해 업데이트를 처리합니다. [동작 요약] ObservableObject 클래스 내에서 @Published 속성 래퍼를 사용합니다. @Published 속성은 변경되는 사항을 등록한 모든 View에 알립니다. View는 @StateObject 프로퍼티 래퍼를 사용해 이 ObservableObject와 연결합니다. 한 개 뷰에서 Combine 예제 import SwiftUI // ObservableObject 프로토콜을 채택하는 데이터 모델 클래스 class MyDataModel: ObservableObject { // @Published 속성을 사용하여 데이터 변경을.. 2023. 11. 23.
SwiftUI에서 Class와 Struct 특징 및 차이점 결론부터 보면 Class는 참조타입이고 ARC로 메모리 관리를 합니다. 그리고 Struct는 값 타입입니다. 참조와 값에 대한 설명은 아래 글을 참고 바랍니다. 2023.11.19 - [프로그램 개발해서 돈벌기/iOS] - 메모리에 표시되는 값 형식과 참조 형식 메모리에 표시되는 값 형식과 참조 형식 값 형식 정수, 실수, 불린, 문자와 같은 기본 자료형과 구조체, 열거형은 값 형식으로 분류합니다. 값 형식으로 선언된 값은 메모리의 스택 영역에 저장됩니다. var a = 10 값 형식으로 저장된 값을 direction-to-money.tistory.com Class와 Struct 공통점 값을 저장할 프로퍼티를 선언할 수 있습니다. 함수적 기능을 하는 메서드를 선언할 수 있습니다. 내부 값에 .을 사용하여.. 2023. 11. 22.
SwiftUI에서 그리드 아이템을 한꺼번에 보여 주지 않고 12 개씩 나누어서 보여 주기 100개 아이템을 초기 20를 보여 줍니다. 그리고 "더 보기" 버튼 클릭 시 12개씩 추가적으로 보여 줍니다. data 배열에 prefix를 이용합니다. LazyVGrid는 SwiftUI에서 그리드 레이아웃을 만들기 위한 컨테이너 뷰 중 하나입니다. 이 뷰는 데이터의 컬렉션을 가져와 그리드 형식으로 표시하는 데 사용됩니다. 각 항목은 그리드의 셀에 배치되며, 필요에 따라 필요한 만큼만 렌더링됩니다. import SwiftUI struct ContentView: View { let data = (1...100).map { "Item \($0)" } @State private var visibleItemCount = 20 // 초기에 보이는 항목 수 @State private var additionalIt.. 2023. 11. 13.
Synchronous operation using await when clicking a Button in SwiftUI and receiving the result through HTTP communication. SwiftUI에서 Button을 클릭했을때 HTTP 통신으로 결과를 가져오는 검색을 많이 이용합니다. 그런데 통신 시 사용하는 URLSession을 사용하면 비동기적으로 동작합니다. 그래서 버튼 내 검색을하는 함수를 만들어서 정상적으로 동작 시에 true를 가져오고 실패 시 false를 가져오는 함수를 만들면 잘못된 결과 값을 받게 된다. // async // 버튼 Button(action: { let bResult = asyncTest(url: URL(string: "https://www.google.com")!) print(bResult) }){Text("접속 코드 확인")} .buttonStyle(.borderedProminent) func asyncTest(url: URL) -> Bool { va.. 2022. 11. 24.
[SwiftUI] TabView 샘플 코드로 알아 보기 안녕하세요. 오늘은 TabView를 간략하게 알아 보겠습니다. TabView는 하나의 화면에 여러 개의 View를 Tab 방식으로 보여주는 것입니다. 샘플 코드 실행 화면은 그림 1.과 같습니다. // ContentView.swift import SwiftUI struct ContentView : View { var body: some View { TabView { Text("First View") // tabItem(하단 탭 메뉴)에 아이콘과 글자 표시 .tabItem { Image(systemName: "1.square.fill") Text("First") } Text("Second View") .tabItem { Image(systemName: "2.square.fill") Text("Second".. 2022. 11. 1.
728x90
반응형