SWIFT/UIKit(55)
-
[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 -
[UIKit] 텍스트필드 글자수 제한
1) 텍스트필드델리게이트 이용 textFieldPW.delegate = self extension LoginViewController: UITextFieldDelegate { func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { return !(textField.text!.count > 20) } } 2) 텍스트필드 액션 'Edting Changed' 이용 @IBAction func changeAction(_ sender: Any) { if textFieldID.text!.count > 20 { textFieldID.deleteBack..
2022.07.27 -
[UIKit] 라이트모드/다크모드 지원 2022.07.26
-
[UIKit] 가로/세로 방향 고정
General에서 Device Orientation을 체크해줬지만 고정이 안된다 그래서 코드로 나타냄 AppDelegate 에서 메소드 추가해주면 고정완료 landscape = 가로 //가로세로 고정! func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { return UIInterfaceOrientationMask.landscape }
2022.07.20 -
[UIKit] 바텀시트
참조 https://www.youtube.com/watch?v=wjw82e7suGg
2022.07.18