project 50

iOS StackView Button 추가하기

iOS StackView Button 추가하기 StackView의 경우에는 이전에는 storyboard로 사용했기에 크게 문제가 되지 않았는데, 코드로 할 때 조금 어려웠음.    var stackView = UIStackView().then { $0.translatesAutoresizingMaskIntoConstraints = false $0.backgroundColor = .white $0.distribution = .fillEqually } var noticeButton = UIButton().then { $0.setTitle("공지", for: .normal) $0.layer.cornerRadius = 20 ..

[iOS] FCM(Firebase Cloud Message) 정리 기본

[iOS] FCM(Firebase Cloud Message) 정리 기본과거에는 시뮬레이터에서 동작하지 않았으나, 이제는 시뮬레이터에서 테스트 가능  ✅ 목차1️⃣ AppDelegate.Swift 2️⃣ Xcode -> Targets 설정하기3️⃣ APNs 설정하기4️⃣ Firebase console ✅ AppDelegate.Swift import UIKitimport Firebaseimport UserNotifications@mainclass AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launc..

[iOS] UILabel 2줄로 표현하기

[iOS] UILabel 2줄로 표현하기 이제는 스토리 보드를 사용하지 않고, Then및 SnapKit을 이용해서 UI를 작성하고 있어서 아직은 적응중이라 조금 어려웠음. 처음에는 UILabel을 2줄로 표현하는 것을 몰라서 그냥 UILabel 2개를 사용했었는데, 이렇게 되면 UILabel()이 조건에 따라 글자가 1줄로 바뀌거나, 사라지거나, 위치가 조정된다면(레이아웃을 다시 잡아야함) 생각보다 복잡해지는 문제 발생 그래서 나는 하나의 레이블을 2줄로 사용해야함을 느꼈는데, 아래의 코드를 보도록 하자  샘플코드.즉 numberOfLines 키워드가 몇줄인지를 결정한다값이 0일경우 n줄로 설정하고, 값이 0이 아닐경우 사용자가 지정한 만큼만 줄이 늘어난다!  private var AlarmLab..

[iOS] TextView keyboard resignFirstResponder

[iOS] TextView keyboard resignFirstResponder 내가 정말 고민했던게, textView 외에 다른 곳을 클릭했을 때, 어떻게 resignFirstResponder를 받아서 키보드를 내릴지 엄청 생각을 많이했는데, 예전에 다른 플젝에서는 textView외에 다른 곳이 터치를 받으면 전부 다 하나씩 내리게끔 만들어서 가끔 뷰의 빈 공간에 이벤트가 발생하지 않는 작은 문제를 갖고 있었음.   🟠 어떻게 해결했느냐? override func touchesBegan(_ touches: Set, with event: UIEvent?) { let touch = touches.first as! UITouch if touch.view != FeedbackTe..

[iOS] 코드로 화면전환 하는법😏

코드로 화면전환 ✅ 이번 시간에는 스토리 보드 없이 화면 전환 하는 법에 대해서 알아볼 예정이야. 🟠 그동안은 항상 스토리 보드로만 작업을 해서 present 메소드를 사용해서 화면을 전환한다면 // 스토리보드의 파일 찾기 let storyboard: UIStoryboard? = UIStoryboard(name: "Main", bundle: Bundle.main) // 스토리보드에서 지정해준 ViewController의 ID guard let vc = storyboard?.instantiateViewController(identifier: "VC1") else { return } // 화면 전환방식 선택 (default : .modal) vc.modalTransitionStyle = .fullScreen..

iOS SkeletonView 사용 주의점

iOS SkeletonView 사용 주의점 스켈레톤 뷰와 관련한 이전 포스팅https://rldd.tistory.com/252 [iOS] SkeletonView에 대해서 알아보자. ☠️✅이번 시간에는 SkeletonView에 대해서 알아볼 예정이야. ✅목차 1️⃣ SkeletonView란 무엇일까? 2️⃣ 설치하는 방법 3️⃣ 간단한 예시를 코드와 함께 알아보자. ✅1. SkeletonView란 무엇일까? 우선 Skelerldd.tistory.com  문제상황스토리보드 없이 코드로 마이그레이션 하면서 문제 발생 코드로 만들때는 커스텀 셀을 만들게 되는데, 셀 자체도 isSkeletonable이어야 함// 아래 코드가 없어서 문제였음. 전체 코드는 아래 참고self.isSkeletonable = true ..

iOS SkeletonView 총 정리

iOS SkeletonView 총 정리 목차SkeletonView란 무엇일까?설치하는 방법사용하는 방법 (예시 및 코드) SkeletonView란 무엇일까?네트워크 상태에서 받아오기 전까지 placeholder처럼 나타나는 UI ✅ 설치하는 방법https://github.com/Juanpe/SkeletonView GitHub - Juanpe/SkeletonView: ☠️ An elegant way to show users that something is happening and also prepare them to which con☠️ An elegant way to show users that something is happening and also prepare them to which conten..

iOS 공유하기 LPLinkMetadata (UIKit, SwiftUI) 디자인패턴 적용

iOS 공유하기 LPLinkMetadata (UIKit, SwiftUI) 디자인패턴 적용iOS 시스템 공유하기 기능을 개발SwiftUI에서 지원하는 ShareLink도 있지만, 더 범용성있게 사용하기 위해 해당 형태로 구현예제코드 히스토리2021.06.17.: 초기버전Swift 5, Xcode 12, iOS minimum Target 9.02024.12.11: 개선버전Swift 5.10, Xcode 16.1, minimum Target 13.0빌더 패턴 적용Mixin and Trait 개념 적용모듈화LinkMetaData 적용 코드 구현에 사용된 개념Swift Mixin and TraitSwift 디자인패턴 Builder Pattern (빌더 패턴) 목차결과 스크린샷구현부 전체 코드UsageSwiftUI..