iOS/UIKit(59)
-
[UIKit] 스토리보드 없는 프로젝트 세팅
프로젝트 생성 Main Interface 부분 삭제 version 14.2 Main 스토리보드 삭제 Info.plist 파일에서 스토리보드 삭제 메인 VC 설정 SceneDelegate 파일에 가서 설정한다 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { //윈도우 씬을 가져온다 guard let windowScene = (scene as? UIWindowScene) else { return } //윈도우 크기 설정 window = UIWindow(frame: UIScreen.main.bounds) //뷰컨트롤러 인스턴스 생성 le..
2022.08.14 -
[UIKit] 카카오 (다음) 지도 API 사용하기(2)
자신의 위치를 위도와 경로로 받아서 지도의 가운데로 설정 mapView.setMapCenter(MTMapPoint(geoCoord: MTMapPointGeo(latitude: 37.456518177069526, longitude: 126.70531256589555)), zoomLevel: 1, animated: true)
2022.08.14 -
[UIKit] 카카오 (다음) 지도 API 사용하기
SDK 다운로드 https://apis.map.kakao.com/ios/guide/#step1 내 애플리케이션 추가하기 https://developers.kakao.com/console/app 카카오계정 로그인 여기를 눌러 링크를 확인하세요. accounts.kakao.com iOS추가하고 BundleID 입력 나의 번들아이디는 처음 프로젝트를 생성할 때 정하고 General 가면 확인할 수 있다. 이거랑 카카오 애플리케이션에서 번들아이디를 같게 적어줘야한다 카카오 네이티브앱키 입력 위에서 다운받은 SDK파일을 압축을 풀고 lib 폴더로 들어가서 DaumMap.embeddedframework 파일을 내 xcode프로젝트에 복사한다 다음지도프레임워크가 사용하는 프레임워크들을 추가해줘야한다 - OpenGLE..
2022.08.14 -
[UIKit] 테이블뷰 만들기 & 테이블뷰 셀 클릭이벤트
스토리보드에 테이블뷰를 추가한다. 스토리보드의 테이블뷰를 뷰컨트롤러에 선언해준다 @IBOutlet weak var myTableView: UITableView! 테이블뷰셀을 만든다 새로운 파일 추가하여 Cocoa Touch Class에서 UITableViewCell 파일을 선택하여 XIB파일도 함께 생성해준다. 테이블뷰셀을 꾸민다 오른쪽 인스펙터 화면에서 identifier 이름을 설정해준다 (헷갈리지않게 파일이름과 똑같이 만들어준다) 뷰컨트롤러에서 테이블뷰를 연결한다 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { @IBOutlet weak var myTableView: UITableView! ove..
2022.08.14 -
[UIKit] xcconfig 파일
파일을 추가하여 config를 검색 파일에 자신의 고유 네이티브앱키를 입력해준다 (""없이 그냥 키값만) 나는 카카오로그인을 만들기위해 카카오 앱키를 사용하였다. info.plist 파일에 상수로 가져와서 설정해준다. 사용할 때는 ${설정한 이름} 이 프로젝트에서 config 파일을 사용할 것이라는 것을 설정해주는 것 configurations에서 디버그를 드롭다운해서 내리고 자신의 프로젝트이름 옆에 또 드롭다운을 내리면 처음에 만들어줬던 config파일이을 설정해준다 let kakaoNativeAppKey = Bundle.main.infoDictionary?["KAKAO_NATIVE_APP_KEY"] ?? "" KakaoSDK.initSDK(appKey: kakaoNativeAppKey as! Stri..
2022.08.10 -
[UIKit] 로컬푸시 알림구현
https://beenii.tistory.com/182 Local Notification (로컬 푸시) 구현하기 대부분 앱을 사용하시다보면 푸시알림을 무수히 받아보셨을거예요. 저도 잠시 계약한 스타트업에서 진행하고 있는 프로젝트에서도 Push 알림을 구현해야한다고 하셔서 푸시알림에 대해 알아보 beenii.tistory.com https://inuplace.tistory.com/1243
2022.08.07 -
[UIKit] 컬렉션뷰 왼쪽정렬
아주 간단 https://eunjin3786.tistory.com/401 [iOS] Single CollectionViewCell을 왼쪽 정렬(left align) 하기 # 이슈 collectionview 안에 cell이 두개 이상이면 왼쪽 정렬이 된다. 하지만 cell이 하나 일 때만 센터 정렬이 된다. # 해결 collectionView의 estimate size를 automatic -> none 으로 바꾸면 single cell 일.. eunjin3786.tistory.com
2022.08.07 -
[UIKit] 스크롤뷰/테이블뷰 제일 밑으로 이동
테이블뷰 데이터 불러오기 -> 테이블에 데이터 추가 -> 테이블뷰 리로드 -> 제일 밑으로 이동 self.chatResult += chatresult self.chatTableView.reloadData() self.scrollToBottom() func scrollToBottom(){ DispatchQueue.main.async { if self.chatResult.count > 0 { let ip = IndexPath(row: self.chatResult.count-1, section: 0) self.chatTableView.scrollToRow(at: ip, at: .bottom, animated: true) } } refreshControl.endRefreshing() } 꼭 비동기로 진행해줘야함..
2022.08.06 -
[UIKit] 텍스트필드 입력(클릭) 시 키보드 올리기/내리기
🧸 시작 텍스트필드를 사용할 때 키보드가 위로 올라왔다가 내려갔다가 한다. 키보드가 올라가면서 화면을 가리게 되는 데 입력하는 텍스트필드가 가려질 때가 있다. 그러면 화면에 있는 컴포넌트들도 위로 올라가야한다. 이를 해결하기 위한 방법이다. 적용 전 적용 후 🧸 키보드 옵저버를 생성한다. func keyboardObserver() { NotificationCenter.default.addObserver(self, selector: #selector(keyboardWhillShow), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector..
2022.08.06 -
[UIKit] "keyWindow' was deprecated in iOS 13.0 : Should not be used for applications that support multiple scenes as it returns a key window across all connected scenes" error 에러 해결
let keyboardHeight = keyboardFrame.cgRectValue.height let scenes = UIApplication.shared.connectedScenes let windowScene = scenes.first as? UIWindowScene let window = windowScene?.windows.first if self.viewCommentConstraint.constant == 0{ self.viewCommentConstraint.constant += (keyboardHeight-(window?.safeAreaInsets.bottom ?? 0)) } [키보드 전체코드] https://nlestory.tistory.com/112 [iOS/Swift] 텍스트필드 입력(..
2022.08.06 -
[UIKit] 위에서 올라오는 바텀시트(모달창) 만들기 (FloatingPanel 라이브러리)
라이브러리 사용하였다 정보가 너무 없어서 구현하는 데 너무 힘들었다 라이브러리 주소 https://github.com/scenee/FloatingPanel#change-the-backdrop-alpha GitHub - scenee/FloatingPanel: A clean and easy-to-use floating panel UI component for iOS A clean and easy-to-use floating panel UI component for iOS - GitHub - scenee/FloatingPanel: A clean and easy-to-use floating panel UI component for iOS github.com 일단 뷰컨으로 바텀시트를 하나 만든다 뷰사이를 전체로 ..
2022.08.06 -
[UIKit] 테이블뷰 셀안에 있는 버튼 클릭 이벤트 처리하기 -델리게이트 패턴
[델리게이트패턴 사용하기] 더보기 https://nlestory.tistory.com/155 [Design Pattern] 디자인패턴 -델리게이트 패턴 (Delegate Pattern) 👉 Delegate 란? 사전적의미는 '위임하다'라는 뜻이다. 즉 위임자를 갖고 객체가 다른 객체에게 자신의 일을 위임하는 형태 👉 이벤트를 전달하는 방식 만약에 A뷰컨트롤러에서 B뷰컨트롤러로 이 nlestory.tistory.com 테이블뷰셀에서 일단 누르고 싶은 버튼에 클릭이벤트 생성하기 @IBAction func btnMoreAction(_ sender: Any) { } 그리고 테이블뷰에 프로토콜 생성 protocol BtnMoreDelegate { func btnMoreAction(index: Int) } 자신이 ..
2022.08.06 -
[UIKit] 네비게이션바 뒤로가기 아이템 설정 변경
let backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: self, action: nil) backBarButtonItem.tintColor = .darkGray self.navigationItem.backBarButtonItem = backBarButtonItem 해당코드를 넘어갈 뷰컨에다 해주는것이 아니라 넘기기전에 해줘야함
2022.08.05 -
[UIKit] 루트뷰 변경하기, 상황에 따라 초기화면 변경하기
https://blog.naver.com/PostView.nhn?blogId=psj9102&logNo=222094915075&categoryNo=73&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView Swift : 첫화면(Root)을 어떤걸 보여줄까 ( Login 로직 ) * 독학 블로그 이므로 틀린 부분이 있을 수 있습니다. 서로의 정보를 댓글로 공유해주세요. 이 포스팅은 아... blog.naver.com
2022.08.04 -
[UIKit] Firebase 연동하여 회원가입하기
기본적인 파이어베이스 세팅 https://sujinnaljin.medium.com/ios-firebase-%ED%8C%8C%EC%9D%B4%EC%96%B4%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%97%B0%EB%8F%99-56bcc972ec8f [iOS] Firebase 연동 iOS 파이어베이스 연동을 통해 Analytics, FCM 등을 사용해보자 sujinnaljin.medium.com 여기에서 쭈꾸쭈쭈꾸쭈꾺~ 설정 나는 회원가입/로그인을 사용할 거라 #파이어베이스 pod 'Firebase' pod 'FirebaseAuth' pod 'FirebaseStorage' 이렇게 추가해주었다 구글서비스인포 등록! 앱델리게이트도 설정 완료! 이제 회원가입할 뷰로 가서 이메일과 비밀번호만 받아서 ..
2022.08.03 -
[UIKit] 커스텀 네비게이션바 (Custom NavigationBar)
https://hanulyun.medium.com/swift-custom-navigationbar-%EC%9D%98-%EB%AA%A8%EB%93%A0-%EA%B2%83-2949bb47fb04 (Swift) Custom NavigationBar 의 모든 것 Swift 5.1 기준 hanulyun.medium.com
2022.07.31 -
[UIKit] 라디오버튼
IBOutlet var btnRadioS: [UIButton]! var radioIndex: Int? @IBAction func btnAction(_ btn: UIButton) { if radioIndex != nil { if !btn.isSelected { for index in btnRadioS.indices { btnRadioS[index].isSelected = false } btn.isSelected = true radioIndex = btnRadioS.firstIndex(of: btn) } else { btn.isSelected = false radioIndex = nil } } else { btn.isSelected = true radioIndex = btnRadioS.firstIndex(o..
2022.07.29 -
[UIKit] 세그를 이용한 화면 전환/뒤로 가기
일단 버튼 오른쪽 마우스해서 드래그 Show 클릭 네비게이션바를 이용하지 않고 버튼을 이용하여 뒤로가기 실행 @IBAction func btnAction(_ btn: UIButton) { switch btn { case btnLogin: self.navigationController?.popViewController(animated: true) default: return } } 나는 버튼을 처리하는 것을 한번에 모아서 진행중이라서 이렇게 써주었다 Action에 한줄만 넣어주면 뒤로가기 완료 그리고 push 해서 계속 화면이 쌓여있는 상황에서 전전전 화면이나 가고싶은 화면이 있을 경우에는 그 뷰컨막대기에 있는 exit 를 사용해야한다 자신이 가고싶은 화면에서 @IBAction func unwindJoin..
2022.07.28 -
[UIKit] 카카오로그인
https://mini-min-dev.tistory.com/38 [iOS] 소셜 로그인을 구현해보자! 1탄 - 카카오톡 로그인 오늘은 최신 어플이라면, 빠지지 않고 가장 기본적으로 들어가는 기능 "소셜 로그인"에 대해 시리즈로 글을 다루어보려 한다. 오늘은 그 첫 번째로, 카카오톡 간편 로그인에 대해 다뤄보겠다. 사 mini-min-dev.tistory.com https://jpointofviewntoe.tistory.com/12 iOS : Cocoapod와 pod설치하기! 안녕하세요 전진시입니다~! 오늘은 Cocoapod이 무엇인지 알아보고 pod 설치하는 방법에 대해 포스팅하겠습니다o(*'▽'*)/☆゚’ CocoaPod이란? 코코아 팟 사이트를 들어가 보시면 라고 설명되어 있습니 jpointofvie..
2022.07.27 -
[UIKit] MARK 단축키 만들기(스니펫:Snippet)
//MARK: m만 쳐도 나올 수 있게 스니펫으로 설정 //MARK: 이거 드래그한다음에 오른쪽 마우스 누르면 스니펫 만들기 있음! 안에 내용에는 이렇게 작성하면 된다 나는 그냥 마크라고 지어줫당 짜장
2022.07.27