iOS 13

[Swift] UICollectionView Custom Layout: A Spinning Wheel with Swift 5

UICollectionView Custom Layout Tutorial: A Spinning Wheel을 Swift 5로 작성한 글입니다. 1. UICollectionViewCell class CollectionViewCell: UICollectionViewCell { override func apply(_ layoutAttributes: UICollectionViewLayoutAttributes) { super.apply(layoutAttributes) guard let layoutAttributes = layoutAttributes as? CollectionViewLayoutAttributes else { return } layer.anchorPoint = layoutAttributes.anchorP..

iOS/Swift 2022.11.04

[Swift] Alamofire 기초 01 - 설치 및 사용 방법

이 포스트는 Alamofire 라이브러리 시리즈의 시작인 설치에 대한 포스팅입니다 :) 코코아팟 설치 방법은 이전 포스팅에서 확인해주세요. ([Xcode] 코코아팟 설치 및 사용하기 (CocoaPods)) Github의 공식 깃은 여기에서 확인 가능합니다. 최종 수정일 - 22. 09. 20 PM 5:15 설치 1. Podfile을 실행하여 설치하고자 하는 라이브러리를 입력해줍니다. - SwiftyJSON 을 같이 사용할 예정이므로 추가 2. pod install pod install 3. 설치 완료 - Project.xcworkspace 로 프로젝트 실행 사용법 1. ViewController 에 프레임워크 추가합니다. import Alamofire import SwiftyJSON 2. 기본형 구성 f..

iOS/라이브러리 2022.09.20

[Xcode] 코코아팟 설치 및 사용하기 (CocoaPods)

이 포스트는 코코아팟(CocoaPods)을 설명하기 위한 포스팅입니다 :) 코코아팟의 가이드라인은 여기에서 확인하실 수 있습니다. 최종 수정일 - 22. 09. 20 PM 04:30 설치 1. 터미널을 연다. 2. 명령어를 입력한다. sudo gem install cocoapods 3. 끝 사용 1. 터미널을 연다. 2. 프로젝트 파일 경로로 이동한다. cd ~/Project 3. Podfile 을 만들어 준다 pod init 4. Podfile을 열어서 설치하고자 하는 라이브러리를 작성한다. open Podfile pod 'Alamofire', '5.1' 5. 라이브러리 설치 pod install 6. 기존 프로젝트를 닫고 Project.xcworkspace을 새로 열어준다. open Project.x..

iOS/라이브러리 2022.09.20

[Swift] 무한 배너 만들기(Make a Infinite slide banner with carousel)

이 포스트는 UICollectionView의 Carousel View로 만든 배너를 무한하게 스크롤하게 만들기 위한 포스팅입니다 :) (참고: [Swift] 배너 만들기(Make a Slide banner with Carousel)) Carousel은 우리말로 회전목마를 뜻합니다. Carousel View는 일정한 형태를 유지하며 무한히 회전하는 View를 말하지만, 일정하게 Slide 되는 View를 칭하기도 합니다. 최종 수정일 - 22. 09. 20 PM 1:20 개요 1. 기존의 셀에서 앞 뒤에 2개의 셀을 추가해준다. 2. 추가 영역에 도달하면 해당 데이터와 원본 데이터가 동일한 셀로 이동한다. - 7번 셀에 도달한다면 스크롤을 2번 셀로 이동한다. - 1번 셀에 도달한다면 스크롤을 6번 셀..

iOS/Swift 2022.09.20

[Swift] 배너 만들기(Make a Slide banner with Carousel)

이 포스트는 UICollectionView의 Carousel View로 배너를 만들기 위한 포스팅입니다 :) Carousel은 우리말로 회전목마를 뜻합니다. Carousel View는 일정한 형태를 유지하며 무한히 회전하는 View를 말하지만, 일정하게 Slide 되는 View를 칭하기도 합니다. (무한히 회전하는 Carousel View를 만드는 방법은 차후에 포스팅하겠습니다.) 추가로 Timer를 이용하여 자동 스크롤이 되도록 하는 방법도 작성합니다. 최종 수정일 - 22. 09. 20 AM 9:20 방법 1. UICollectionView 생성 @IBOutlet weak var collectionView: UICollectionView! var cellSize: CGSize = .zero fun..

iOS/Swift 2022.09.19

[Swift] UILabel 생략 부호(... 또는 Ellipsis) 바꾸기

이 포스트는 UILabel에서 text의 길이가 numberOfLines 값을 넘었을때 나오는 생략부호(... 또는 Ellipsis 또는 three dot)을 바꾸기 위한 포스팅입니다 :) 실제로 바꾸는 것은 아니고 그렇게 보이도록 하는 방법입니다. 최종 수정일 - 22. 09. 1 PM 3:20 방법 1. replaceEllipsis(with string: String) 함수를 생성 extention UILabel { func replaceEllipsis(with string: String) { guard let text = self.text else { return } lineBreakMode = .byClipping // STEP 0: Ellipsis가 필요 없는 경우 return if numb..

iOS/Swift 2022.09.01

[Swift] textViewDidChange(_:) 위치값 초기화 현상 수정

이 포스트는 textViewDidChange(_:)에서 문자열 또는 속성 문자열 (NSAttributedString)을 설정하면 textView의 Curser position이 초기화 되는 현상을 수정하기 위한 포스팅입니다 :) 속성 문자열에 대한 포스팅은 여기서 확인하실 수 있습니다. 최종 수정일 - 22. 08. 22 PM 3:57 문제 확인 1. textViewDidChange(_:) 함수에 text 또는 attributedText를 설정한다. func textViewDidChange(_ textView: UITextView) { guard var text = textView.text else { return } textView.text = text } 2. 테스트 3. 한글자 입력 후 가장 마지막..

iOS/Swift 2022.08.22

[Swift] 화면 눌러서 키보드 내리기 (Tap to hide keyboard)

이 포스트는 화면을 눌러서 키보드를 닫기에 대한 포스팅입니다 :) 최종 수정일 - 22. 08. 12 PM 02:40 1. 아래 함수를 extention으로 추가합니다. extension UIViewController { // ViewController에서 해당 함수 실행 func setupHideKeyboardOnTap() { self.view.addGestureRecognizer(self.endEditingRecognizer()) self.navigationController?.navigationBar.addGestureRecognizer(self.endEditingRecognizer()) } // 다른곳에서는 쓸 일이 없으므로 private private func endEditingRecognize..

iOS/Swift 2022.08.12

[Swift] 속성 문자열 사용법 (NSAttributedString)

이 포스트는 속성 문자열 (NSAttributedString) 사용법과 정규식을 이용한 사용법에 대한 포스팅입니다 :) 애플의 공식 문서는 여기서 확인하실 수 있습니다. 최종 수정일 - 22. 08. 12 PM 2:15 사용법 1. UILabel을 준비합니다. @IBOutlet weak var label: UILabel! label.text = "AttributedString text label" 2. String을 NSAttributedString으로 변환합니다. extension String { func attributed(of searchString: String, key: NSAttributedString.Key, value: Any) -> NSMutableAttributedString { // ..

iOS/Swift 2022.08.12

[Swift] 원형 프로그래스 바 구현 (Custom circular progress bar)

이 포스트는 원형 프로그래스 바 구현 (Custom circular progress bar)을 설명하기 위한 포스팅입니다 :) 최종 수정일 - 22. 08. 12 AM 10:30 원형 프로그래스바 만들어보기 1. 새로운 파일 CircularProgressBar.swift 를 준비합니다. 2. CircularProgressBar 에 Class를 생성합니다. class CircularProgressBar { override func draw(_ rect: CGRect) { // Code... } } 3. 프로그래스 바의 두께와 값을 설정한 변수를 생성해 줍니다. - 스토리보드에서 값을 변경하고 싶다면 '@IBInspectable'을 추가합니다. @IBInspectable var lineWidth: CGFlo..

iOS/Swift 2022.08.12