분류 전체보기 37

RxSwift) UITextView 동적 높이 조절

입력 값에 따라 텍스트뷰의 높이를 바꾸는법 isScrollEnabled: 사이즈 증가를 위해 스크롤을 막는다 lessThanOrEqualTo: 최대높이를 설정 한다. let chattingTextView = { let view = UITextView() view.backgroundColor = Colors.backgroundPrimary.color view.font = Font.body.fontWithLineHeight() view.isScrollEnabled = false return view }() chattingTextView.snp.makeConstraints { make in make.height.lessThanOrEqualTo(54) } rx.didChange: 텍스트뷰의 텍스트가 변경될 때 ..

iOS/RxSwift 2024.02.06

WeatherKit 사용하기

앱을 개발하며 날씨를 받아오는 기능이 필요해서 WeatherKit 을 사용해봤습니다. WeatherKit은 애플 개발자 계정이 있어야 사용가능합니다~ 제공 데이터 더 자세한 내용은 WWDC2022 와 데이터셋 을 확인 해주세요 1. Key 생성 인증서 페이지에서 key를 생성합니다. 2. AppID 생성 번들 아이디는 프로젝트의 번들아이디와 같아야 합니다. capabilities 와 appservices 에서 weatherKit 을 체크합니다. 3. Xcode 기본 설정 Capablility 를 클릭해서 weatherKit 을 추가합니다. 날씨 정보 받기 사용자의 위치를 받기위해 설정 합니다. class WeatherTestViewController: UIViewController { let weathe..

iOS/swift 2023.11.29

RxSwift) textField.rx.text 텍스트가 변경될 때만 이벤트 감지

텍스트 필드의 텍스트가 변경 될 때가 아닌상태에서도 이벤트를 방출 하고있어서 찾아봤습니다. 문제점 회원가입을 받는 화면에서 이메일 중복 확인을 하는 기능이 있습니다. 중복 확인을 한 후에 이메일을 변경할 경우 다시 중복체크를 하기위해 값을 false 로 넘겨 주고 있었는데 다음 텍스트 필드로 넘어갈 때 이벤트가 방출되는 현상이 있었습니다. let input = SignUpViewModel.Input( emailTextfieldChange: mainView.emailTextField.rx.text.orEmpty, // 생략 ) input.emailTextfieldChange .bind(with: self) { owner, text in print(text) owner.emailText = text owne..

iOS/RxSwift 2023.11.24

dyld[46471]: Library not loaded: @rpath/libXCTestSwiftSupport.dylib Referenced from:

dyld[46471]: Library not loaded: @rpath/libXCTestSwiftSupport.dylib Referenced from: /Users/isangnam/Library/Developer/Xcode/DerivedData/SCloset-bgejcwkdqhelarambdyzqvxxtzsi/Build/Products/Debug-iphonesimulator/PackageFrameworks/RxTest.framework/RxTest RxTest와 RxBlocking은 내 앱 타겟에 바로 작성하지 않고 테스트 타겟에 작성해야한다. 그래서 우선 테스트 타겟부터 생성해야한다. 우선 사용하지 않기때문에 삭제한다. 참고 https://velog.io/@sun02/dyld-Library-not-lo..

iOS/Xcode 2023.11.15

CodeBaseUI) Xcode 프로젝트 Main.storyBoard 삭제

1. Main.stroyBoard 삭제 2. info.plist 수정 info.plist StoryboardName 삭제 3. Project TARGETS 수정 Project TARGETS -> Build Settings -> Main 검색 -> UIKit MAin Storyboard File Base Name 삭제 4. SceneDelegate 수정 첫 화면 으로 띄울 뷰컨트롤러를 생성합니다. class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: ..

iOS/Xcode 2023.11.15

[TodoDoIt] 앱 출시 회고

TodoDoIt은 하루의 목표와 할 일들을 관리할 수 있는 앱입니다. https://apps.apple.com/kr/app/투두두잇-tododoit/id6470423853 ‎투두두잇 - TodoDoIt ‎주요 기능: [ 목표 달성 ] - 목표의 기간과 횟수를 설정해서 달성해보세요. - 목표의 진행률과 달성 일자를 확인해보세요. [ 할 일 ] - 선택한 날짜의 할 일을 추가해보세요. - 할 일을 미루는 것 apps.apple.com 기획 처음 기획을 하면서 어떤 앱을 만들까 라는 고민을 하다가 종종 해야 할 일을 까먹는 것이 생각나서 투두리스트를 만들기로 했습니다. 투두리스트의 기능을 생각하다가 목표와 메모기능을 더 넣기로 했습니다. UI 이번 출시를 통해 초기 기획이 얼마나 중요한지 가장 중요하게 느꼈던..

iOS 2023.11.06

리젝 사유 ) We need additional time to evaluate your submission and Apple Developer Program account. Your submission status will appear as "Rejected" in App Store Connect while we investigate (Other)

출시 중 신기한 리젝을 받아 리젝 사유에 대해 적어보려고 한다. 리젝 메세지 처음 심사로 넘어갔을때 2분만에 리젝이 날라왔다. Hello, Thank you for submitting your app for review. We need additional time to evaluate your submission and Apple Developer Program account. Your submission status will appear as "Rejected" in App Store Connect while we investigate. However, we do not require a revised binary or additional information from you at this time. ..

iOS 2023.11.01

Swift) CACornerMask를 사용해 특정 모서리만 CornerRadius 주기

해당 이미지처럼 뷰 전체가아닌 일부분에만 CornerRadius 를 설정해야 할 때 가있다. CACornerMask iOS 11 이상부터 사용 가능하다. 다음과 같은 옵션이 있다. public struct CACornerMask : OptionSet { public init(rawValue: UInt) // 좌측상단 public static var layerMinXMinYCorner: CACornerMask { get } // 우측상단 public static var layerMaxXMinYCorner: CACornerMask { get } // 좌측하단 public static var layerMinXMaxYCorner: CACornerMask { get } // 우측하단 public static va..

iOS/UIKit 2023.10.06