Programming84 [Swift] 구조체(struct)와 클래스(class)의 차이 정리 구조체와 클래스의 정의 및 구문 Swift에서 구조체와 클래스 모두 사용하여 사용자 정의 데이터 유형을 정의할 수 있습니다. 구조체를 정의하는 구문은 다음과 같습니다: struct MyStruct { // properties and methods } 클래스를 정의하는 구문은 유사합니다: class MyClass { // properties and methods } Reference vs Value Type 구조체와 클래스의 가장 중요한 차이점 중 하나는 메모리 처리 방식입니다. 구조체는 값 유형이므로 구조체 인스턴스를 만들 때 복사됩니다. 이는 각 구조체 인스턴스가 데이터의 자체 복사본을 갖게 되어 한 인스턴스의 수정이 다른 인스턴스에 영향을 미치지 않는다는 것을 의미합니다. 반면에 클래스는 참조 유형입.. Programming/Swift 2023. 3. 1. WCSession / WCSessionDelegate 정리 WCSession은 WatchConnectivity 프레임워크에서 제공하는 클래스로, iOS 앱과 Apple Watch에서 실행되는 watchOS 앱 간의 통신을 가능하게 합니다. 이 클래스는 두 기기 간에 데이터를 주고받을 수 있는 메서드와 통신 세션의 상태를 관리하는 메서드를 제공합니다. WCSessionDelegate는 iOS 앱과 watchOS 앱 간의 통신 세션과 관련된 이벤트를 처리할 수 있는 메서드를 정의하는 프로토콜입니다. 이 프로토콜의 메서드는 WCSession 객체에 의해 호출되며, 세션이 활성화되거나 비활성화되거나, 메시지를 수신하는 등의 이벤트에 대응합니다. WCSession의 주요 메서드 activate() iOS 앱과 watchOS 앱 간의 세션을 활성화합니다. 데이터를 보내거나.. Programming/Swift 2023. 2. 28. UIScrollView / UIScrollViewDelegate 정리 UIScrollView UIScrollView는 iOS에서 화면의 표시 영역보다 큰 콘텐츠를 스크롤하여 볼 수 있게 해주는 뷰입니다. UIScrollView는 UIView의 하위 클래스이며, 수직 또는 수평으로 콘텐츠를 스크롤하고 콘텐츠를 확대하거나 축소하는 인터페이스를 제공합니다. UIScrollView의 중요 프로퍼티 contentOffset: 이 속성은 현재 보이는 콘텐츠의 위치를 스크롤 뷰의 원점에 상대적으로 지정합니다. 이것은 콘텐츠의 x와 y 오프셋을 나타내는 CGPoint 값입니다. 이 속성을 사용하여 콘텐츠를 프로그래밍 방식으로 스크롤하거나 동적 효과를 위해 다른 뷰에 바인딩할 수 있습니다. contentSize: 이 속성은 스크롤 뷰 내에서 스크롤 가능한 콘텐츠 영역의 크기를 지정합니다... Programming/iOS Developer Documentation 2023. 2. 25. UICollectionView 섹션에 배경 색상을 적용하기 UICollectionView는 iOS 앱에서 데이터를 표시하는 데 자주 사용되는 컴포넌트 중 하나입니다. UICollectionView의 각 셀은 일반적으로 특정 데이터 항목을 나타내며, 해당 셀의 배경 색상을 지정할 수 있습니다. 그러나 UICollectionView의 섹션에 배경 색상을 적용하는 것은 조금 더 복잡합니다. 이번 글에서는 UICollectionView의 섹션에 직접 배경 색상을 적용하는 방법에 대해 알아보겠습니다.willDisplay(_:forItemAt:)에서 셀에 직접 backgroundColor 주입UICollectionViewDelegate의 willDisplay(_:forItemAt:) 메서드를 사용하여 셀이 표시될 때마다 해당 셀의 배경 색상을 설정할 수 있습니다. 이 방법.. Programming/Swift 2023. 2. 23. [Swift] Opaque Types 찍어먹기 doc: https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html Opaque Types Opaque Types을 사용한 fuction이나 method는 리턴되는 값의 타입에 대한 정보를 숨기는 타입으로 반환된다. 함수의 반환 타입으로 구체적인 타입을 제공하지 않고, 반환 값이 채택하는 프로토콜로 묘사된다. 프로토콜 타입을 반환하는 것과 다르게 Opaque Types은 타입 정보를 보존한다. => 컴파일러는 타입 정보에 접근할 수 있지만, 모듈의 클라이언트는 그렇지 않다. Opaque Type을 사용하지 않을 시 protocol Weapon { func attack() } struct NoTypeWeapon: Weapon { func attack.. Programming/Swift 2022. 2. 16. [UIKit] draw(_:) 개발문서 번역 Instance Method - draw(_:) 전달된 직사각형(rect) 내에 리시버들의 이미지를 그린다. Declaration func draw(_ rect: CGRect) Parameters rect 뷰들 bounds 중 업데이트가 필요한 부분 이다. 처음 뷰를 그릴 때 이 rect는 일반적으로 뷰의 전체 visible bounds 이다. 하지만, 이후 그리기 작업 중에는 , rect가 뷰의 일부만 지정될 수 있다. Discusstion 이 메서드의 기본 구현은 아무 동작도 없다. Core Graphics와 UIKit과 같은 기술을 사용하여 자신의 콘텐츠를 그리는 서브클래스는 이 메서드를 오버라이드 하고 해당 서브뷰의 draw 코드를 구현해야 한다. 너의 뷰(UIVIew의 서브클래스)가 다른 방법으.. Programming/iOS Developer Documentation 2021. 2. 2. [UIKit] UIResponder 개발문서 번역 UIResponder 이벤트에 응답하고 처리하기 위한 추상 인터페이스 Declaration class UIResponder : NSObject Overview 리스폰더* 객체(UIResponder의 객체)는 UIKit 앱의 이벤트 처리 뼈대를 구성한다. UIApplication 객체, UIViewController 객체 및 모든 UIView 객체(UIWinow 포함)를 비롯한 많은 주요 객체도 리스폰더 객체이다. 이벤트가 발생하면 UIKIT은 해당 이벤트를 앱의 responder 객체로 보내서 처리한다. *리스폰더 - 한국 말로 표현하자면 "응답자" 혹은 "응답 대상"이 가장 적절할 것 같다. 이벤트에는 터치 이벤트, 모션 이벤트, 원격 제어 이벤트 및 프레스 이벤트를 포함한 여러 종류의 이벤트가 있다... Programming/iOS Developer Documentation 2021. 1. 10. [UIKit] cancelInteractiveMovement 개발문서 번역 cancelInteractiveMovement() 대화형(interactive) 이동 추적을 종료하고 아이템의 원래 포지션으로 되돌린다. -> 여기서 원래의 포지션은 마지막으로 이동을 완료한 좌표이기도 하다. Declaration func cancelInteractiveMovement() Discussion 아이템의 이동을 추적하는것을 취소(종료) 하고, 원래의 위치로 되돌리기 위해 이 메서드를 호출한다. 예를들어, gesture recognizer를 사용하여 상호 작용을 추적할 때, 제스처가 취소(종료)되는 시점에 이 메서드를 호출하면 된다. 해당 메서드를 호출하면, 컬렉션 뷰에서 추적하던 프로세스를 종료하고, 아이템을 원래 위치로 반환할 수 있다. Programming/iOS Developer Documentation 2020. 12. 29. [UIKit] updateInteractiveMovementTargetPosition 개발문서 번역 updateInteractiveMovementTargetPosition(_:) 컬렉션 뷰의 범위 내에 있는 항목의 위치를 업데이트한다. Declaration func updateInteractiveMovementTargetPosition(_ targetPosition: CGPoint) Parameters targetPosition 컬렉션 뷰의 좌표계 안에서 아이템의 포지션 *"컬렉션 뷰의 좌표계 안" 이라는 키워드가 중요해 보인다. Discussion 아이템(컬렉션 뷰 셀)을 대화식(interactively)으로 이동할 때, 아이템의 새 포지션을 컬렉션 뷰에 제공하기 위해 이 메소드를 사용해야 한다. 아이템과 유저의 상호작용을 추적하기 위해 gesture recognizer를 사용할 때, 매번 이 메소드.. Programming/iOS Developer Documentation 2020. 12. 29. [UIKit] beginInteractiveMovementForItem 개발문서 번역 beginInteractiveMovementForItem(at:) 특정 indexPath에서 아이템의 상호 이동(interactive movement)을 시작하다. Declaration func beginInteractiveMovementForItem(at indexPath: IndexPath) -> Bool Parameters indexPath 이동할 아이템의 indexPath Return Value 아이템을 이동할 수 있으면 true, 아이템을 이동하는 것이 허락되지 않았다면 false Discussion 아이템(collection view cell)의 현재 위치에서 같은 콜렉션 뷰 내부의 새로운 위치로 상호 이동(interactvie movement)을 시작하기를 원한다면 이 메소드를 호출 해야한다.. Programming/iOS Developer Documentation 2020. 12. 27. [UIKit] UIEvent Documentation, UIEvent 개발문서 번역 UIEvent 앱과 단일 사용자의 인터랙션(상호작용)을 묘사(설명? describes)하는 객체 Declaration class UIEvent : NSObject Overview 앱은 터치 이벤트, 모션 이벤트, 원격 제어 이벤트(remote-control), 그리고 프레스 이벤트(press) 등 다양한 유형의 이벤트를 수신할 수 있다. 터치 이벤트는 가장 일반적인 이벤트로, 처음 터치가 발생한 뷰로 전달이 된다. 모션 이벤트는 UIKit 에서 트리거된 모션 이벤트 이고, 코어 모션 프레임워크에서 리포트된 모션 이벤트와는 별개의 이벤트이다. 원격 제어 이벤트를 통해 리스폰드의 객체가 외부 액세서리 또는 헤드셋에서 명령을 수신하여 오디오 및 비디오를 관리할 수 있다. - 예를 들어, 비디오를 재생하거나 다.. Programming/iOS Developer Documentation 2020. 12. 26. [UIKit] UITouch Documentation, UITouch 개발문서 번역 매번 볼때마다 다르게 해석되는 것 같아서.. 중요한 개발문서는 좀 내 입맛에 맞게 번역해서 남겨보자는 취지로 시작. UITouch 화면에서 발생하는 터치의 위치, 크기, 이동 및 세기를 나타내는 오브젝트이다. Declaration class UITouch : NSObject Overview 당신은 이벤트 핸들링을 위한 리스폰더 오브젝트로 전해진 UIEvent를 통해서 터치 오브젝트에 접근할 수 있다, 터치 오브젝트에는 다음과 같은 접근자(accessors)*들이 포함된다. *accessors를 통해 어떤 클래스의 프로퍼티에 대해 접근할 수 있다. 같이 언급되는 쓰이는 용어로는 mutator(변경자)가 있다. 터치가 발생한 뷰나 윈도우 뷰나 윈도우 내부에서 발생한 터치 위치 터치의 반경(radius)에 대.. Programming/iOS Developer Documentation 2020. 12. 25. 이전 1 2 3 4 ··· 7 다음