분류 전체보기 (263) 썸네일형 리스트형 [UIKit] UIView.AnimationOptions UIView.animate지정된 지속 시간을 사용하여 하나 이상의 뷰에 대한 변경 사항을 애니메이션으로 표시UIView.animate( withDuration: TimeInterval, // 애니메이션 지속 시간 (초) delay: TimeInterval, // 시작 전 대기 시간 options: UIView.AnimationOptions, // 애니메이션 스타일 및 동작 옵션 animations: { // 변화시킬 코드 (위치, 크기, 배경색, 투명도 등) }, completion: { finished in // 애니메이션이 끝난 후 실행될 코드 }) 이 메서드는 Main Thread에서 실행되어야 한다. 또한 만약 Au.. [UIKit]UIModalTransitionStyle UIModalTransitionStyle UIModalTransitionStyle은 새로운 화면(View Controller)을 모달(Modal) 방식으로 띄울 때, 어떤 애니메이션 효과를 줄 것인지에 대한 속성 값이다. 4가지 종류로 이루어져 있다. coverVertical(default) crossDissolve filpHorizontal partialCurllet second = SecondViewController()second.modalPresentationStyle = .fullScreensecond.modalTransitionStyle = .partialCurl※ modalPresentationStyle이 fullScreen이 아닐 경우 사용 불가능하다. modalPresentationSty.. [SPM] Swift Package Manager 배포하기 기존 cocoapods에만 배포되어 있는 프로젝트를 날 잡아서 SPM에 배포하려고 한다. 터미널 접속swift package init 이 명령어를 프로젝트 폴더에서 실행하면 Package.swift 생성된다.import PackageDescriptionlet package = Package( name: "KHBannerView", platforms: [ .iOS(.v13) ], products: [ .library( name: "KHBannerView", targets: ["KHBannerView"] // 코드 파일 경로 ), ], targets: [ .target( .. [SwiftUI] SwiftUI로 Pagination 구현하기 저번 UIKit으로 Pagination을 구현해보았는데 이번에는 SwiftUI로 Pagination을 구현해보려고 한다.아래는 저번 UIKit으로 구현한 내용을 포스팅한 것이다. [UIKit] UITableView + Pagination 구현Pagination Pagination(페이지 매기기) 또는 Paging(페이징) 이란 문서를 전자 페이지 또는 인쇄된 페이지 등 개별 페이지로 나누는 프로세스이다.우리가 사용하는 웹페이지에서 쉽게 Pagination이 구현한kimkhuna99.tistory.com 일단 나는 아래 블로그 내용을 가지고 진행하였다.https://medium.com/@felix.anderson1504/mvvm-in-swiftui-api-calls-pull-to-refresh-and-pa.. [Tuist] 기존 프로젝트에 Tuist 적용하기 우리가 개발할 때 프로젝트에 있는 .xcdeproj 파일이 브랜치를 변경할 때마다 파일이 충돌하거나, 설정을 잘못 건드려도 프로젝트가 꼬이는 경험이 한번 쯤은 있을 것이다. 나는 개인적으로 진행하고 있던 프로젝트에 Tuist를 적용해보려고 한다. Tuist 란 무엇일까?그렇다면 Tuist란 무엇일까? Tuist는 Xcode 프로젝트 파일을 생성하고 관리해주는 커맨드 라인 도구(CLI) https://docs.tuist.dev/ko/ What is Tuist? | Tuist docs.tuist.dev Tuist를 사용하면 아래와 같이 장점이 있다..xcodeproj를 관리하지 않아도 된다. 대신, Project.swift 라는 Swift 파일에 프로젝트의 구조와 설정을 코드로 정의한다. 그리고 tuist .. [Combine] ObservableObject, @StateObject, @ObservedObject, @EnvironmentObject SwiftUI는 선언형 UI 프레임워크로, 데이터가 변경되면 뷰가 자동으로 업데이트되는 '데이터 바인딩'이 핵심입니다.String, Int 같은 값 타입(Struct, Enum)은 @State나 @Binding을 사용해 간단히 상태를 관리할 수 있습니다. 아래 포스팅에서 @State와 @Binding에 대한 내용이다. [SwiftUI] Managing user interface state이 문서의 글을 번역하여 글을 작성하였습니다. Managing user interface state | Apple Developer DocumentationEncapsulate view-specific data within your app’s view hierarchy to make your views reusable... [Swift] for문 역으로 순회방법 코테를 풀다가 갑자기 for문을 역순으로 사용 해야 되는 경우가 생겼는데 문득 갑자기 어떻게 써볼지 몰라 당황하여 정리하기 위해 포스팅한다. 간단하게는 두 가지를 소개하려고 한다. stride(from:to:by:) 함수 사용 stride(from:to:by:) | Apple Developer DocumentationReturns a sequence from a starting value to, but not including, an end value, stepping by the specified amount.developer.apple.com stride(from:to:by:) 또는 stride(from:through:by:) 함수를 사용하여 특정 범위에서 일정한 간격으로 역순으로 반복from은 시.. [AutoLayout] Compression Resistance Priority Compression Resistance Priority Hugging Priority는 뷰가 자기 크기보다 늘어나지 않으려고 하는 우선순위라고 하면은 Compression Resistance Priority는 뷰가 자기 크기보다 줄어들려고 하지 않는 우선순위이다. 값이 높을수록 글자가 잘리거나 압축되는 걸 거부하고 자기 크기를 유지하려고 한다. Hugging Priority는 아래 포스팅을 참고 [AutoLayout] Hugging Priority우리가 UILabel이 두 개인 상황이다.내가 왼쪽 UILabel은 top/leading/trailling을 40씩, 그리고 오른쪽 UILabel 또한 40씩으로 설정해놓았다.그런데 왼쪽 텍스트가 길어져서 위 에러 메세지가 발생하였다.Set hkimkhuna9.. 이전 1 2 3 4 ··· 33 다음