본문 바로가기
728x90
반응형

프로그램 개발해서 돈벌기/iOS33

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.
메모리에 표시되는 값 형식과 참조 형식 값 형식 정수, 실수, 불린, 문자와 같은 기본 자료형과 구조체, 열거형은 값 형식으로 분류합니다. 값 형식으로 선언된 값은 메모리의 스택 영역에 저장됩니다. var a = 10 값 형식으로 저장된 값을 비교할 때는 스택에 저장된 실제 값을 비교합니다. 참조 형식 클래스, 클로저는 참조 형식으로 분류합니다. 참조 형식의 값을 저장하기 위해서는 스택과 힙 영역에 각각 하나씩 모두 두 개 메모리 공간이 필요합니다. 참조 형식 값은 힙 영역에 저장하고 스택 영역에는 힙 영역에 저장된 값의 주소가 저장됩니다. var str:NSString var : NSString = NSString(string: "hello") 참조 형식 값은 보통 큰 경우가 많아 주소를 전달합니다. 참조 형식 값 비교는 ==를 사용하고 스.. 2023. 11. 19.
메모리 개념과 사이즈 용어 및 메모리 영역별 사용처 메모리 개념 메모리는 1과 0을 저장할 수 있는 저장공간입니다. 메모리는 전압 차이를 이용해서 데이터를 저장합니다. 전기가 들어오면 1, 전기가 들어오지 않으면 0이 저장됩니다. 0과 1을 저장하는 기본 단위는 비트입니다. 8개 비트가 모이면 바이트가 됩니다. 1바이트는 모드 비트가 0일때와 모두 1일 경우까지 256개의 경우의 수를 표현할 수 있습니다. 양수만 저장할 경우 0 ~ 255까지 저장할 수 있고 양수와 음수 모두를 저장할 경우에는 -128 ~ 127까지 저장할 수 있습니다. 22를 8자리 이진수로 표현하면 00010110입니다. MBS: Most Significant Bit (최상위 비트) LSB: Least Significant Bit (최하위 비트) 음수 저장을 위한 "2의 보수" 방식 .. 2023. 11. 19.
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.
728x90
반응형