본문 바로가기
728x90
반응형

swift17

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.
swift로 중복되지 않게 랜덤으로 10자리 스트링 생성 방법 UUID(Universally Unique Identifier) 처럼 쓸 수 있고 자리 수를 조절할 수 있는 코드 입니다. 10자리 스트링 생성 코드 func generateRandomString(length: Int) -> String { let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" var randomString = "" for _ in 0.. 2023. 6. 23.
[Swift] IOS 웹뷰(webview)에 캐쉬(cache) 적용하기 2가지 방법 1. URLRequest 멤버 변수에 적용 let myURL = URL(string: "https://m.naver.com") var myRequest = URLRequest(url: myURL!) myRequest.cachePolicy = .returnCacheDataElseLoad if let webView = self.m_web { webView.load(myRequest) } 2. URLRequest 생성 시 파라미터로 적용 SwiftUI의 인라인 호출에 유용합니다. let myURL = URL(string: "https://m.kiwidisk.com") let myRequest = URLRequest(url: myURL!, cachePolicy:.returnCacheDataElseLoad) if.. 2023. 4. 28.
728x90
반응형