안녕하세요 ^~^ 이번 글에서는 저번 글에 이어 사진첩의 사진을 삭제해보려고 합니다. 물론 이번에도 스토리보드는 사용하지 않을 거예요. 우선 저번 글에서 구현한 마지막 모습을 보고 진행하도록 하겠습니다. 그럼 이제 여기서 사진을 삭제할 수 있도록 만들어볼까요? 우선 Photos 프레임워크에서 사진이 삭제되었다는 것을 알기 위해서는 PHPhotoLibraryChangeObserver 프로토콜을 채택해야 합니다. 근데 이렇게 하면 위의 사진처럼 오류가 발생하는데요 이는 추가한 프로토콜에 필요한 메서드를 정의하지 않았기 때문입니다. 이러한 메서드를 추가해주시면 추가한 프로토콜이 잘 작동됩니다. 참고로 추가한 메서드는 이름만 봐도 알 수 있지만 포토라이브러리의 변화를 관찰하는 옵저버입니다. 즉 이번에 저희가 사..
지난 글에 이어 이번 글에서는 아이폰에 저장되어있는 사진들로 컬렉션 뷰를 채워보는 작업을 해보도록 하겠습니다. 이렇게 iOS에서 사진이나 비디오들을 다루기 위해선 PhotoKit을 사용해야 합니다. 여기서 간단하게 iOS의 Photos 프레임워크가 사진과 동영상을 취급하는 모습을 그림으로 나타내 보겠습니다. 위의 그림과 같이 iOS의 사진과 비디오는 3 계층으로 되어있는데 간단하게 말하면 Asset과 Asset을 모은 Asset Collection, Asset Collection을 모은 Collection List로 구성됩니다. Asset은 사진이나 비디오 파일을 말하며 Asset Collection은 앨범이나 사진 폴더라고 보면 쉽습니다. 그리고 이러한 폴더들을 모아둔 것이 Collection List..
저번 글에 이어 이번 글에서는 스토리보드 없이 만들어진 화면에 버튼과 레이블, 이미지 뷰를 추가해보려고 합니다! 우선 완성된 화면을 먼저 보여드리고 진행하도록 하겠습니다. 아주 간단하게 만든 앱으로 스토리보드 없이 오토 레이아웃 적용하기, 버튼 눌렀을 때 이벤트 생성하기 정도의 글입니다. 물론 스토리보드를 이용하면 아주 간단하게 만들 수 있지만 스토리보드가 없는 상황에선 은근히 많은 코드가 필요합니다. 저번에 만들어 둔 MyViewController.swift 파일에 코드를 작성하면 위와 같은 결과를 얻어낼 수 있습니다. 먼저 버튼을 추가해보겠습니다. 위의 코드와 같이 작성하면 오른쪽 사진과 같이 버튼하나가 추가됩니다. 오토 레이아웃을 설정하는 부분이 어려웠는데 self.view의 경우에는 전체 화면이라..
iOS 개발 공부를 하면서 새 프로젝트를 생성하면 기본적으로 생성되어있던 여러 가지 Swift파일들과 Main.Storyboard로 바로 개발을 시작했었는데, 이러한 파일들은 무슨 역할을 하는 것이며 Storyboard 없이 개발하는 방법은 없을까를 알아보았고 실제로 스토리보드 없이 개발하는 방법을 기록해두러고 합니다. 실제 현업에서는 스토리보드 없이 개발을 진행하는 곳도 많다고 하니 꼭 알아야 할 것 같습니다. 우선 프로젝트를 만들 때 템플릿을 아래와 같이 설정합니다. 그다음 User Interface에서 Storyboard를 선택하고 프로젝트를 생성합니다. 이렇게 프로젝트를 생성하면 아래와 같은 파일들이 자동적으로 생성되어있습니다. 여기서 이번 글에서 중점적으로 볼 것은 Main.storyboard ..
iOS에서는 View가 화면에 나타나거나 사라질 때 호출되는 메서드들이 정의되어있다. 그중 오늘 시행착오를 겪은 viewWillAppear에 대한 글을 작성하려고 한다. Declaration func viewWillAppear(_ animated : Bool) Discussion 이 메서드 이름 그대로 해석하게 되면 뷰가 곧 나올 것이라고 예상될 때 호출된다고 볼 수 있다. 이는 xcode에서 프로젝트를 생성 시 자동으로 생성되는 viewController.swift의 viewDidLoad 메서드와 큰 차이점이 있다. viewDidLoad는 처음 뷰가 나타날 때 한 번만 호출되지만 viewWillAppear은 뷰가 나타날 때마다 호출된다. 즉 뷰가 보일 때마다 새로운 작업을 하고 싶을 때 사용하면 좋다...
안녕하세요 Pingu입니다! 이번 글에서는 Swift 공식 문서의 10번째 단원인 Properties를 읽고 정리한 글을 쓰려고 합니다. Apple Swift 공식 문서 10단원 - Properties Properties (프로퍼티) Properties(프로퍼티)는 클래스, 구조체, 열거형에서 사용되는 associate value입니다. Stored property(저장 프로퍼티)는 클래스, 구조체, 열거형의 인스턴스의 일부로 저장되고 Computed property(계산 프로퍼티)는 값을 계산하는데 쓰입니다. 저장 프로퍼티는 클래스와 구조체에만 제공되고 계산 프로퍼티는 클래스, 구조체, 열거형에 제공됩니다. 프로퍼티는 타입 그 자체와 연결되어 있을 수 있습니다. 이런 프로퍼티를 type property..
Apple Developer Documentation - UITableView UITableView 테이블 뷰는 하나의 열에 Array로 이루어진 여러 개의 행을 사용하여 데이터를 표시하는 뷰이다. Declaration class UITableView: UIScrollView Overview 테이블 뷰는 iOS 화면에서 하나의 열을 여러 행으로 나누어 각각의 행마다 콘텐츠를 넣어둔 것이다. 테이블 뷰는 위아래로만 스크롤이 움직인다. 예를 들어 위의 Contacts 앱에서 각각의 contact가 하나의 열로 되어있는 것을 볼 수 있다. 또한 오른쪽의 Settings 앱에서는 그룹 별로 열들이 나누어져 있는 것을 볼 수 있다. 위와 같이 열들을 그룹으로 나누어 볼 수도 있고 하나의 그룹으로 처리할 수도 있다..
Apple Developer Documentation - UITableViewDelegate UITableViewDelegate 테이블 뷰에서 section의 header, footer를 관리하고 셀을 삭제하거나 위치를 바꾸고 그 외의 다른 작업을 수행하기 위한 메서드를 제공한다. Declaration protocol UITableViewDelegate Overview UITableViewDelegate 프로토콜을 사용해서 할 수 있는 일들 1. 테이블 뷰의 header, footer를 만들고 관리 2. 셀과 header, footer의 높이를 마음대로 조절 3. 더 나은 스크롤링을 위해 높이 조절 4. 셀의 콘텐츠를 나눈다 5. 셀의 선택에 대한 응답 6. 셀에 대한 스와이프나 그 외의 행동에 대해 응..
- Total
- Today
- Yesterday
- 알고리즘
- DP
- 코딩테스트
- operator
- Apple
- dfs
- IOS
- design
- pattern
- 스위프트
- 테이블뷰
- 코테
- mac
- 문법
- Xcode
- document
- operating
- 아이폰
- Publisher
- Swift
- 동시성
- Combine
- BFS
- 프로그래밍
- OSTEP
- OS
- 백준
- 앱개발
- System
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |