iOS24 iOS) ContentMode 알아보기! 💡 가끔씩 ContentMode에 대해 구별이 잘 안가곤 해서 이참에 정리를 한번 해볼까 한다! 자주 사용하는 scaleAspectFit, scaleAspectFill, scaleToFill 세가지를 알아보자👍 예시로 사용할 사진 사용할 코드 var contentModeImage: UIImageView = { let iv = UIImageView() iv.contentMode = .scaleAspectFit iv.image = #imageLiteral(resourceName: "ex") return iv }() override func viewDidLoad() { // ... self.view.addSubview(contentModeImage) contentModeImage.anchor(top: view.. iOS 2022. 12. 29. 곰튀김님의 RxSwift + MVVM (마무리) https://www.youtube.com/watch?v=iHKBNYMWd5I&list=PL03rJBlpwTaBrhux_C8RmtWDI_kZSLvdQ 해당 글은 곰튀김님의 RxSwift 강의 영상을 시청 후 작성한 글입니다. 이제 메뉴를 추가 삭제(+, -)하는 버튼을 구현해보자! Cell 클래스에는두 가지메서드가 있다. class MenuItemTableViewCell: UITableViewCell { @IBOutlet var title: UILabel! @IBOutlet var count: UILabel! @IBOutlet var price: UILabel! @IBAction func onIncreaseCount() { } @IBAction func onDecreaseCount() { } } 저 두 .. iOS 2022. 11. 1. 곰튀김님의 RxSwift + MVVM (3) https://www.youtube.com/watch?v=iHKBNYMWd5I&list=PL03rJBlpwTaBrhux_C8RmtWDI_kZSLvdQ 해당 글은 곰튀김님의 RxSwift 강의 영상을 시청 후 작성한 글입니다. 다음 예제는 아래와 같은 화면으로 시작한다. UI만 간단히 구성되어있는 상태이고 추가 삭제 등의 버튼은 동작하지 않는다. 결과 화면에서도 더미 데이터만 보인다. 이것을 RxSwift와 MVVM패턴을 사용하여 다음과 같은 화면처럼 구현 할 예정이다. 우선 메뉴의 정보를 가지고 있을 Menu 구조체를 하나 만들어주자. // ViewModel: View를 위한 Model struct Menu { var name: String var price: Int var count: Int } 이 M.. iOS 2022. 11. 1. 곰튀김님의 RxSwift + MVVM (2) https://www.youtube.com/watch?v=iHKBNYMWd5I&list=PL03rJBlpwTaBrhux_C8RmtWDI_kZSLvdQ 해당 글은 곰튀김님의 RxSwift 강의 영상을 시청 후 작성한 글입니다. 이전 포스트에서 Disposables.create()에 대한 설명을 빼먹었다. 우선 Disposables은 내부에 구현이 아무것도 없는 구조체이다. 그리고 우리가 return 했던 Disposables.create에서 아무것도 하지 않으면 NopDisposable 인스턴스가 만들어진다. 이 인스턴스의 dispose는 아무것도 하지 않는다. Disposables.create에 클로저를 하나 전달하면 AnonymousDisposable 인스턴스가 만들어진다. 이 인스턴스의 dispose.. iOS 2022. 10. 24. 곰튀김님의 RxSwift + MVVM (1) https://www.youtube.com/watch?v=iHKBNYMWd5I&list=PL03rJBlpwTaBrhux_C8RmtWDI_kZSLvdQ 해당 글은 곰튀김님의 RxSwift 강의 영상을 시청 후 작성한 글입니다. API를 다루는 프로젝트를 하던 도중 RxSwift라는 것을 사용하면 더 편하기 비동기 처리를 할 수 있다고 하여서 같이 공부하는 형에게 곰튀김님의 유튜브를 추천받아 강의영상을 시청했다! 강의를 듣기전에 RxSwift라는 단어를 많이 들어봤는데 그럴때마다 너무 어렵게 느껴져서 내가 과연 배울 수 있을까...라고 생각이 들었다. 하지만 API 프로젝트를 할 때 항상 더 편한 방법을 고안해왔고 RxSwift가 조금이라도 도움이 더 된다면 찍먹(?) 이라도 해보면 좋겠다 생각이 들었다👍 .. iOS 2022. 10. 23. iOS) 오토레이아웃 기초 간단 정리 오토레이아웃이란? 💡말 그대로 자동으로 레이아웃을 그려주는 기능 자동으로 layout을 그리기 위해 필요한 것? 💡View의 위치와 크기를 제공을 해주어야 한다. 위치 앵커로써 위치를 알게 된다. (x축과 y축) 크기 Width(너비)와 Height(높이) 🤗오토레이아웃에서는 View의 위치와 크기가 핵심이다! → 가로(x)에 어디에 위치해있느냐, 세로(y)에 어디에 위치해있느냐와 View의 크기를 알면 오토레이아웃에서는 알아서 View를 계산해서 각 디바이스에 맞게끔 View를 그려준다. 라이브러리에서 uiView를 가져온 후 노란색으로 색을 변경 alt키를 누르고 흰부분에 마우스를 갖다 대면 해당 view의 위치가 나온다. 아이폰 se로 바꾸어 보면 달라진다. 여기서 오토레이아웃을 한다는 의미는 Vi.. iOS 2022. 8. 29. iOS) TextField에서 글자 수 제한하기 (feat. Toast) 개인 공부를 통한 내용을 토대로 작성한 글입니다. 잘못된 내용이 있을 수 있음에 유의해 주시고 피드백은 언제나 환영입니다🙌 이번엔 TextField에서 글자 입력 시 글자 수를 제한하는 방법에 대해서 알아보자!😸 여러 앱들을 사용하다 보면 글자 수에 제한이 있는 것을 볼 수 있다. 만약 10자 내로 글자를 써야 한다면 그 이상은 키보드를 눌러도 입력되지 않는다. 이러한 기능을 구현해보고 싶어졌다. 우선 TextField에서 이루어지는 작업이다보니 매 입력 시에 호출할 메서드가 있었으면 좋겠다 해서 UITextFieldDelegate를 살펴보았다! https://developer.apple.com/documentation/uikit/uitextfielddelegate Apple Developer Docum.. iOS 2022. 7. 24. iOS) 계산기 앱(3) 이번 포스팅에서는 계산기 앱에 있는 연산 기능을 간단하게 구현해 볼 예정이다. CalculatorLogic Switch문 수정 전 import UIKit struct CalculatorLogic { // private을 통해 다른 파일에서의 접근을 막음 private var number: Double? // 구조체이기 때문에 변수에 새로운 값을 넣을 시 mutating 키워드 필요 mutating func setNumber(_ number: Double) { self.number = number } func calculate(symbol: String, uiBtn: UIButton) -> Double? { if let n = number { switch symbol { case "+/-": return .. iOS 2022. 5. 26. iOS) 계산기 앱(2) - MVC패턴 적용 현재 ViewController에서 모든 기능을 구현하고 있다. 지금은 간단한 코드로만 구성되어 있지만 계산 기능을 하나씩 넣기시작하면 오직 한 파일로만 관리를 하는 것은 이상적이지 않다. 그래서 MVC패턴을 적용하기로 했다! 요즘엔 MVVM패턴을 많이 사용한다 해서 너무 궁금하지만 우선 MVC패턴이라도 제대로 구성해보자는 생각을 가지고 있다 ㅎㅎ Model, View, Controller 세개의 그룹을 만들고 Controller에는 기존에 사용한 ViewController 파일을 넣어주고 Model에 계산기능을 담당하는 새로운 파일을 만들어주었다. CalculatorLogic MVC패턴 적용 전 연산버튼 코드(CalculatorViewController) @IBAction func calcButtonP.. iOS 2022. 5. 23. iOS) Swift에서 Struct를 사용하는 이유 Swift에서 Struct에 대해 학습하는 것은 매우 중요하다. 다른 프로그래밍 언어에도 struct라는 것이 존재하고 언어마다 서로 조금씩 다른 특징을 가지고 있는데, Swift라는 언어에서는 Struct가 어떻게 쓰이는지 알아보자. 우선 Struct를 생성하는 것은 Class와 매우 유사하다. Swift에서 Struct는 프로퍼티, 메소드를 가질 수 있고 Class가 할 수 있는 거의 모든 것을 할 수 있지만 조금씩 다른 점이 존재한다. 서로 비슷한 기능을 한다고 하면 Struct와 Class중에 어떤 게 더 좋냐는 질문이 나올 수 있는데 이는 어떤 프로그래밍 언어가 제일 좋냐라는 질문과 비슷하다. 더 좋고 나쁜것은 존재하지 않고 상황에 맞는 도구들을 쓴다고 생각하여 Struct와 Class도 상황에.. iOS 2022. 5. 19. iOS) 계산기 앱 (1) Angela 강좌 코스 중 계산기 앱을 만든 적이 있다. 정확히 말하면 계산기 UI를 이용한 오토 레이아웃 연습이었다. 실제 계산 기능은 없었던 오토 레이아웃 연습만을 위한 앱이었는데, 이번에는 계산기의 기능을 할 수 있는 파트를 수강 중이다. 오토 레이아웃은 이미 적용되어 있는 상태인데 오랜만에 계산기를 보니 반가웠다. 한창 처음 공부할 때 계산기 오토 레이아웃에서 애를 먹은 적이 있는데 Stack View가 주원인이었다. 이번 포스트에서는 오토 레이아웃에 대한 설명은 하지 않을 거지만 하나의 팁을 남기자면 먼저 가로줄(ex. [AC, +/-, %, ÷], [7,8,9]...)에 대한 Stack View를 먼저 설정해주고 그 Stack View들을 세로로 Stack View를 만들어주면 된다! 코드 부.. iOS 2022. 5. 12. Swift) Property Observers (프로퍼티 옵저버) 옵저버라고 하면 예전 스타크래프트의 프로토스 종족의 유닛이 생각난다. 투명화가 기본으로 장착되어 상대를 몰래 감시할 수 있게 만들어진 유닛이다. 프로퍼티 옵저버라고하면 프로퍼티를 감시한다는 말처럼 들린다. 내가 참고한 강의에선 Observed Properties라는 단어를 사용했는데 한글로 할 때는 능동태로 표현하는 게 더 편해서 프로퍼티 옵저버로 제목을 지었다! 애플에서 프로퍼티 옵저버를 정의한 문서를 보면 "프로퍼티 옵저버는 프로퍼티 값의 변화를 감시하고 응답한다. (모니터링한다.) 또한 프로퍼티의 값이 정해질 때마다 매번 호출이 되는데 이는 새로운 값이 기존의 값과 동일할 때도 호출이 된다" 라고 적혀져있다. 또 구글링을 해서 정보를 더 찾아보았는데, 프로퍼티 옵저버는 자신의 정의한 저장 프로퍼티(.. iOS 2022. 5. 7. 이전 1 2 다음