728x90

Swift/학습 24

[Swift] UIActivityController에 대하여 알아보자!

이번 글에서 알아보고자 하는 것은 iOS 어플에서 공유 부분을 만들 때 사용하는 UIActivityController입니다. 보통 크게 공유하는 것으로는 1. 이미지 2. URL 3. 텍스트 4. 위의 혼합 등이 있습니다. 어떤 식을 사용하는 지 또 어떠한 기능을 제공하는지 간단히 알아보겠습니다. 1. 생성 생성에는 공유할 아이템(이미지, 링크, 텍스트 등) 과 커스텀 지원의 파라미터가 존재합니다. 이 두 파라미터는 nil을 사용하실 수 있습니다. let items: Array = [공유할 아이템] let activities: Array = [커스텀 액티비티] let activityVC: UIActivityViewController = UIActivityViewController(activityItems..

Swift/학습 2020.06.08

[Swift] DispatchTimer를 사용해보자!

이번 글에서는 DispathTimer를 사용법에 대하여 알아보겠습니다. 임의의 시간 동안 처리, 몇 초뒤 실행 등 타이머 처리가 필요할 때 사용되는 방법 중 하나입니다. 코드를 보시면서 어떤식으로 진행되는지 확인해봅시다! 1. DispatchTimer 사용 예시 코드 이번에는 뭐 디자인이랄 것도 없기 때문에 디자인은 생략하고 바로 코드로 넘어가겠습니다. 아 이번에 디자인에 대해서는 IBOutlet이 아닌 tag를 사용했습니다. tag에 대해서는 다음에 알아보겠습니다. class ViewController: UIViewController { // 타이머 선언 private var timer: DispatchSourceTimer? // 횟수 private var count = 0 // 버튼 생성 privat..

Swift/학습 2020.06.05

[Swift] MapView를 클릭했을 때 해당 위치의 주소를 알아내보자!

이번 글에서 만들어 보고자 하는 것은 MapKit을 사용하여 지도의 임의의 위치를 클릭했을 때 해당 위치의 주소를 추출해 보는 App을 만들어 보겠습니다. 일일이 주소를 입력해서 찾는 것보다 그 위치를 한 번의 클릭만으로 주소를 얻어 보고 싶을 때 한 번 사용해보면 좋을 것 같습니다. 특별한 알고리즘을 사용하지 않기 때문에 만드는 데는 큰 어려움은 없습니다. 1. 디자인 저는 간단히 MapView하나와 추출된 주소를 표시할 수 있는 라벨, 이 두 가지만 추가해 보았습니다. 2. 베이스 작성 맵의 임의의 위치를 클릭 했을 때이기 때문에 맵을 클릭할 수 있어야 합니다. 때문에 저는 Tap 제스처를 추가하였습니다. import UIKit import MapKit class ViewController: UIVi..

Swift/학습 2020.05.25

[Swift] Set에 대하여

이번 글에서는 Set에 대하여 알아보겠습니다. Swift에서의 데이터를 관리하는 타입 중 하나인 Set은 Dictionary와 같이 데이터의 순서를 보장할 수는 없지만 중복을 허용하지 않는다는 기능을 가지고 있습니다. 간단히 예를 보시면서 하나하나 어떻게 사용하는지 한번 알아보겠습니다. 1. 생성 우선 생성 방법은 다른 Array나 Dictionary와 비슷합니다. 다만 변수의 타입을 Set으로 설정한 후에는 초기 설정이 필요함으로 주의해주시면 됩니다. // 초기 설정 없이 생성 var setTest = Set() var setTest1: Set = [] var setTest2: Set = [] // Hashable 데이터 타입을 설정해 주어야 합니다. // 초기 설정 동시에 생성 var setTest1..

Swift/학습 2020.05.12

[Swift] Swift - 싱글톤 패턴(Singleton)

이번 글에서는 swift에서의 싱글톤 패턴에 대하여 알아보겠습니다. 싱글톤 패턴이란? 간단하게 설명드리자면 하나의 객체를 생성하여 어디서든 참조하여 사용할 수 있게 하는 디자인 패턴 중의 하나입니다. 개발에 있어서도 자주 사용되는 패턴이기도 합니다. (저 같은 경우는 거의 대부분의 프로젝트에서 사용했었습니다. 예를 들어 Notification 관리 클래스라던가 Dialog 관리 클래스) 게다가 Swift 같은 경우는 구현하는 방법도 매우 쉽기 때문에 금방 따라 하실 수 있을 것입니다. 다만 주의해야하는 점은 하나의 클래스가 프로젝트 전역에서 활용되기 때문에 플래그를 사용하신다면 주의해서 관리를 해야 합니다. 영향력 또한 넓다는 것을 유의하시고 사용하시면 될 것 같습니다. 1. 클래스 생성 생성하는 방법은..

Swift/학습 2020.05.08

[Swift] UICollectionView에 .xib커스텀 셀을 적용해보기

저번에 테이블 뷰에 커스텀 셀을 적용하는 방법을 해보았었는데 이번에는 컬렉션 뷰를 사용해서 같은 방식으로 커스텀 셀을 적용해 보겠습니다. 컬렉션 뷰는 테이블 뷰보다 좀 더 난이도가 있다고 생각합니다. (이것저것 조절해야 할 것도 많습니다...) 그래도 잘 활용할 줄만 안다면 자신의 App의 표현력을 높일 수 있을 것이라고 생각합니다. 구성은 거의 테이블 뷰와 비슷합니다. 그렇다면 한 번 알아보겠습니다. 1. Storyboard에 CollectionView 생성 storyboard에서 collectionView를 생성합니다. 아래와 같이 좌상단에 조그만 사각형 셀이 보입니다. 하지만 이번에 해보는 것은 커스텀 셀이기 때문에 그냥 넘기겠습니다. 2. CollectionView 설정 최소한의 기능을 사용하여 ..

Swift/학습 2020.03.15

[Swift] 문자열의 인코딩

이번에는 Base64를 사용해서 문자열 인코딩을 알아보겠습니다. 아래는 Base64에 대한 설명입니다. 컴퓨터 분야에서 쓰이는 Base 64 란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. 원래 Base 64를 글자 그대로 번역하여 보면 64진법이란 뜻이다. 특별히 64진법이 컴퓨터에서 흥미로운 것은, 64가 2의 제곱수(64 = 26)이며, 2의 제곱수들에 기반한 진법들 중에서 화면에 표시되는 ASCII 문자들을 써서 표현할 수 있는 가장 큰 진법이기 때문이다. 즉, 다음 제곱수인 128진법에는 128개의 기호가 필요한데 화면에 표시되는 ASCII 문자..

Swift/학습 2020.02.23

[Swift] Where에 대해

이번에는 Where에 대해 알아보겠습니다. Where은 간단히 설명드리면 특정적인 패턴과 결합해서 조건을 추가하는 문입니다. (저는 보통 for와 같은 반복문 안에서 한 가지의 조건을 검색하여 값을 구하는 경우 주로 사용합니다.) 물론 if문이나 switch문 등과 같은 다양한 곳에서도 활용 가능합니다. 1.Where 간단한 예제를 통하여 이해해보겠습니다. 아래는 1부터 100까지의 수에서 3의 배수만을 찾는 처리입니다. for element in 1...100 { if element % 3 == 0 { print(element) } } 위와 같이 if문을 사용해서 처리를 할 수도 있지만 Where을 사용하면 아래와 같이 더욱 깔끔히 로직을 작성할 수 있습니다. (코드 수를 줄이거나 할 때 자주 사용합니..

Swift/학습 2020.02.23

[Swift] Slider사용해보기

Swift에서 제공하는 Slider 컨트롤에 대해 알아보겠습니다. Slider를 사용하여 해당 뷰의 백그라운드 컬러를 변경하는 어플을 만들어 보겠습니다. 장점으로는 직접 입력하지 않고 Slider조절로 간단하게 값을 변경할 수 있습니다. 1. 프로젝트 생성 & Slider도입 Slider도입은 스토리보드 [+] Slider를 입력하여 간단히 사용할 수 있습니다. 2. 디자인 구성 어플의 디자인을 구성합니다. (디자인과 제약에 관해서는 자유롭게 진행합니다.) 3. Slider설정 Slider의 값을 설정해줍니다. 이번에 만들 어플은 컬러의 RGB 값을 활용하는 것이기 때문에 최소치를 0, 최대치를 255로 지정해 줍니다. (저는 초기설정을 하얀색으로 하기 위해 255로 지정해주었습니다.) Value의 값은..

Swift/학습 2020.02.16

[Swift] fallthrough에 대해

이번에는 fallthrough에 대해 알아보겠습니다. 저도 처음에 Swift언어에서 접하게 되었는데 생각 외로 많이 사용하게 되는 것 같습니다. (중복적인 코드를 쓰지 않기 위해 여러 출력을 위해 등등) 예제를 보시면서 이해해 보겠습니다. 1.fallthrough fallthrough는 해당 케이스의 처리를 실행 후 바로 밑의 처리를 실행하게 됩니다. enum State { case off case on case waiting case start case end } let state: State = .start switch state { case .off: print("off state") case .on: print("on state") case .waiting: print("waiting state"..

Swift/학습 2020.02.09
728x90