본문 바로가기

IOS - Swift47

[iOS/Xcode] CocoaPods 설치 오류(gem) Apple M1 Pro and macOS Monterey 기준입니다. ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory. HomeBrew에서 cocoapod를 설치할때 위와같은 에러가 난다면.. 1단계(HomeBrew 설치) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh ) 2단계(터미널에서 이 두 명령.. 2023. 3. 3.
[iOS/Swift] GoogleLogin구현부터 idToken 내려받기까지 구글 로그인 구글 공식문서 보면 전부 진행 가능합니다. SDK 파일 git clone 에서 SPM 파일을 다운받으면 되고 CocoaPods 의 경우에는 pod 'GoogleSignIn' 을 입력하고 pod install 을 입력합니다. 다음으로 OAuth를 입력해야 합니다. Google 개발자 콘솔에서 앱 등록: **Google 개발자 콘솔**에 로그인하고, 새로운 프로젝트를 만듭니다. 프로젝트가 만들어지면, 좌측 메뉴에서 "API 및 서비스" -> "사용자 인증 정보" -> "OAuth 동의 화면"을 클릭하고, "앱 등록"을 합니다. 등록한 앱에 대한 정보를 입력하고, 저장합니다. 다음으로 OAuth 클라이언트 ID 및 맞춤 URL 스킴 추가 발급된 CLIENTID는 두개가 있을텐데 스카마용으로 com.. 2023. 3. 3.
[iOS/Swift] 애플로그인 개발자 계정 필수! Xcode에서 앱을 엽니다. Apple Developer 사이트에서 앱 번들 ID를 만듭니다. 제일 아래에 Account 에서 “Certificates, Identifiers & Profiles” 를 클릭합니다. "Identifiers" 섹션으로 이동합니다. "+" 버튼을 클릭하여 새로운 식별자를 생성합니다. "App IDs" 카테고리를 선택합니다. "App ID Description" 필드에 앱을 설명하는 이름을 입력합니다. "Explicit App ID" 옵션을 선택합니다. "Bundle ID" 필드에 앱의 번들 ID를 입력합니다. 번들 ID는 com.companyname.appname과 같은 형식으로 작성됩니다. 이 때, companyname은 개발자 회사의 이름 또는 개인 이름.. 2023. 2. 27.
[iOS/Swift] presentedViewController / presentingViewController UIViewController에 보면 두가지 property가 존재합니다. 무슨 두가지이고, 무슨 의미냐... - presentedViewController : 자신이 호출한 ViewController - presentingViewController: 자신을 호출한 ViewController 이렇게 구분을 할수 있는데 ViewController를 present할 경우에 이 두가지를 이용할 수 있습니다. iOS 5 에서 시작되었고요. 지금은 모든 버전에서 사용 가능합니다. viewWillAppear에서 확인이 가능하고, 자신을 present한 ViewController가 있는지를 확인하여서 dismiss할것인지 pop할것인지의 여부로 사용이 가능하겠습니다. 2023. 1. 29.
[WWDC2022] What’s new in UIKit What’s new in UIKit Productivity Improvements → desktop class IPad 앱을 위한 업데이트 Improved navigation bars Document-based 앱을 위한 두가지 네비게이션 스타일 추가 Browser Editor 툴바 커스텀이 가능하고, 이는 앱을 다시 켜도 유지된다. Mac Catalyst에도 자동으로 지원된다. Title Menu 타이틀을 눌렀을 때 이동, 복제, 이름 변경, 출력 등의 표준 기능들을 delegate 메소드 구현 여부에 따라 띄워줌 커스텀 메뉴를 제공하는 것도 가능 Find and replace 기존 in-app 검색과는 다르다. 이는 텍스트 기반으로 동작하는 것 UITextView나 WKWebView, PDFView .. 2023. 1. 29.
[iOS/Swift] TableVIew 높이 유동적으로 조절하기 extension ViewController: UITableViewDelegate { // 테이블뷰 셀의 높이를 유동적으로 조절하고 싶다면 구현할 수 있는 메서드 // (musicTableView.rowHeight = 120 대신에 사용가능) // func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { // return 120 // } func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { return UITableView.automaticDimension } } UITable.. 2023. 1. 24.
[ios/swift] 컬렉션뷰 가로스크롤(storyboard) 여러모로 많이 애를 먹엇던 테이블뷰 가로스크롤. 정리해보자. 우선, 컬렉션뷰를 하나 올려주고 크기를 설정해줍니다. 그다음 CollectionViewCell의 identifier를 설정해줍니다. CollectionView와 ViewController를 우클릭으로 연결하여 datasource와 delegate를 연결해줍니다 (코드베이스의 경우 collectionview.datasource = self 와 동일합니다. 그다음 원하는 사진을 assets에 넣어줍니다. 이후 imageView 를 cell에 넣어준 후 레이아웃을 잡고 image파일을 하나 삽입합니다. mycollectionview 라는 파일을 하나 생성하고 (UICollectionViewCell) 스토리보드와 해당 파일을 custom class와 .. 2022. 12. 25.
[iOS/Swift] Tabbar 숨기기(가리기) -storyboard 스토리보드에서 Tabbar Controller에서 특정 페이지에서 탭바를 가려야 할때가 있습니다. 특정 page에서만 가려야한다면 우측 inspector에서 Hide Bottom Bar on. Push 를 체크온 시켜주면 됩니다. 2022. 11. 22.
[iOS/swift] Build input file cannot be found: 오류해결 Build input file cannot be found: PATH/TO/FILE/FILE.swift 위와같이 경로 오류가 나는경우 해결방법입니다. 이유는 모르겟는데 갑작스럽게 파일들이 전부 튕깁니다. 그럴때는 프로젝트 네비게이션(맨위 target) 로 이동하고 build phases 로 이동합니다. 그러면 지금 빨간색으로 잃어버린 파일들이 Compile Source에 뜨는데 여기서 파일들을 - 로 삭제해주면 됩니다. 그러고 + 버튼을 눌러서 파일을 다시 삽입하면 정상작동됩니다. 2022. 11. 4.