AutoLayout은 UIKit에서 UI를 구성할 때 기본적이면서 제일 중요한 핵심적인 지식이다.AutoLayout이 무엇인지, 왜 필요한지 알아보자! 💡 Auto Layout이란? 오토레이아웃은 constraint를 사용해서 뷰의 크기, 위치, 간격등을 정의하여 크기가 바뀌거나 방향이 바뀔 때에도 설정한 제약을 만족시키도록 레이아웃이 자동으로 배치된다. 공식문서에서도 화면의 크기와 위치를 Constraints를 통해 동적으로 계산한다고 설명되어 있다. 즉 frame처럼 고정된 너비를 사용하는게 아니라 safeArea나 다른 객체로부터(Image, Label, StackView... 등등) 상대적으로 제약을 줘서 사용하도록 하는 것이다! SwiftUI로 따지면 가로 영역의 너비에 padding값을 주..
아이폰에서 앨범 및 카메라에 접근할 때 접근권한 팝업에 대해 본 적 있을 것이다!!사용자 개인정보에 함부로 접근할 수 없어 동의를 얻고 구해야 한다. 따라서 접근권한 팝업 띄우는 것을 SwiftUI에서 적용해보려고 한다 1️⃣ Info 파일 권한 설정하기 접근: 프로젝트파일 -> TARGETS -> Info 접근해서 맨 밑에 항목을 클릭하면 +를 통해 항목을 추가할 수 있다 추가해야 하는 파일은 아래의 항목 2개를 찾아서 추가해 주면 된다 카메라 추가 : Privacy - Camera Usage Desciption앨범 추가: Privacy - Photo Library Usage Desciption 2️⃣ 사용방법이제 필요한 곳에 연결해 주면 끝이다! 위에 기능을 사용하는 파일에 꼭 아래 프레임워..
오늘은 swift 스터디할 때 첫 프로젝트로 구현했던 스톱워치를 SwiftUI로 구현해 보았다. swift로 만드는 첫 프로젝트이기도 하고 거의 언어를 몰라서 클론코딩에 가까운 수준이었다 지금 코드를 보니 누가 봐도 복붙 하거나 클론코딩 한 거 같다... UIKit로 구현한 전체 코드 import UIKit class ViewController: UIViewController { @IBOutlet weak var TimerLabel: UILabel! @IBOutlet weak var startStopButton: UIButton! @IBOutlet weak var resetButton: UIButton! var timer:Timer = Timer() var count:Int = 0 var timerCou..
textfield에 이미지 이름을 검색했을 때 해당 이미지를 UIImageView를 사용해서 띄우는 기능을 구현해 보자! 1. 스토리보드 먼저 만들어주기 main 스토리보드에 Label, textField, UIImageView를 추가해 줬다. 불러올 이미지가 내가 스토리보드에서 설정한 UIImageView 규격에 꽉 차도록 나타났으면 해서 content Mode를 Aspect Fill로 맞추어 주었다. 이제 ViewController파일에서 핵심 기능인 textField와 UIImageView를 outlet으로 연결시켜 주자. 2. 필요한 변수 선언 var dog: UIImage? var karina: UIImage? var Lany: UIImage? var maru: UIImage? var oasis..
- Total
- Today
- Yesterday
- foundation models
- combine
- 클로저
- asyne-let
- 프로그래머스
- Fastlane
- 코딩테스트
- CoreData
- swiftUI
- UITest
- unstructed task
- group tasks
- XCTest
- internal Combine
- 백준
- closure
- SWIFT
- Swift Format
- ios
- Task
- detached task
- SnapshotTest
- rxswift
- 스위프트
- awakeFromNib
- UIKit
- prepareForReuse
- Swift Concurrency
- ObservableObject
- Xcode
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |