전체 글 117

Swift - 카카오 로그인 구현

카카오 로그인 구현 순서 1. 카카오 디벨로퍼 애플리케이션 추가- developers.kakao.com​  2. 카카오 로그인 활성화 설정  3. 동의 항목 설정→ 카카오 로그인 완료 후 개인정보를 옵셔널하게 받아오는데 동의가 되어있으면 값을 가져옴  4. 플랫폼 등록- 번들 ID 등록 5. Kakao-ios-sdk 설치 (SPM)https://github.com/kakao/kakao-ios-sdk모듈 정보 : https://developers.kakao.com/docs/latest/ko/ios/getting-started#project-plist→ KakaoSDK를 설치하면 모두 설치 됨  6. 프로젝트 설정6-1. 앱 실행 허용 목록- iOS SDK로 카카오톡 애플리케이션을 실행하려면 Info.pli..

Swift 2024.11.13

Swift - CollectionView - 선택한 셀 UI 변경

📑 학습 내용1. 선택된 셀의 인덱스 경로를 저장할 변수 추가 var selectedItemIndex : Int? 2. didSelectItemAt 메서드에서 선택된 셀의 인덱스 업데이트 후 reloadData() 호출 . . . func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { self.selectedItemIndex = indexPath.row collectionView.reloadData() } 3. cellForItemAt 메서드에서 저장된 인덱스로 UI 변경func collectionVie..

Swift 2024.11.11

Swift - Tab Bar 완전히 숨기기(hidesBottomBarWhenPushed 속성)

📑 학습 내용homeVC에서 navigationController로 다른 뷰로 넘어갈 때, 탭 바가 완전히 사라지지 않음 뷰는 나타나지 않지만, 레이아웃은 그대로 유지되는 현상 발생tabBarController?.tabBar.isHidden = true 사용시ViewController의 hidesBottomBarWhenPushed 속성으로 탭 바를 완전히 숨길 수 있음nextVC.hidesBottomBarWhenPushed = true func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { switch collectionView { case homeView..

Swift 2024.11.11

Swift - UIView 상단에만 테두리(border) 넣기

🍎 UIView 상단 border 넣기📑 학습 내용뷰와 뷰 사이의 경계선을 추가해야 함lineView를 여러 개 만들어 각 뷰 사이 사이 넣어주면 해결되지만, lineView가 여러 개 생기면 코드가 복잡해질 것 같음JustDrop 그룹 뷰를 만들어서 사용하기 때문에 이 그룹 뷰의 상단 테두리만 색을 넣어주면 될 것 같음상단 테두리만 지정하는 메서드는 없기 때문에 UIView 클래스를 확장하여 사용  UIView의 상단에 서브뷰를 추가하여 테두리처럼 보이게 만드는 방법extension UIView { func addTopBorder(color: UIColor, width: CGFloat) { let border = UIView() border.backgroundColor..

Swift 2024.11.04

Swift - [SnapKit] snp.updateConstraints()

📑 학습 내용updateConstraints() : 뷰의 제약조건 업데이트변경해야 하는 항목만 업데이트 가능함self.homeView.underlineView.snp.updateConstraints { make in make.leading.equalToSuperview().offset(currentX) make.width.equalTo(lineWidth)}아래의 기존 constraints 에서 top, height은 그대로 두고 leading, width 값만 변경기존 constraints underlineView.snp.makeConstraints { make in make.top.equalTo(segmentedControl.snp.bottom).offset(-1) ..

Swift - viewDidLayoutSubviews()

📑 학습 내용뷰가 하위 뷰의 레이아웃을 완료하면 뷰 컨트롤러에게 알리는 메서드뷰와 서브뷰들의 레이아웃이 모두 정해진 후 호출되는 메서드따라서, 뷰 컨트롤러는 하위 뷰를 레이아웃한 후 변경 하기 위해 이 메서드를 사용함viewDidLayoutSubviews 는 뷰가 생성되고 화면에 보이기 직전 상태로 최초로 뷰들의 크기나 위치를 알 수 있는 시점임뷰 컨트롤러에서 UIView의 레이아웃을 변경하고 싶을 때 viewDidLoad()에서 변경하게 되면 정상적으로 변경할 수 없음 (아직 레이아웃이 잡히지 않았기 때문)따라서 viewDidLayoutSubviews() 에서 변경해줘야 함 override func viewDidLayoutSubviews() { super.viewDidLayoutSu..

Swift 2024.10.20

Swift - UISegmentControl, Content Width 조정 방법

문제 상황세그먼트 컨트롤의 아이템의 width가 각 아이템의 텍스트 길이에 따라 다르지 않고 일정 크기로 동일한 상황텍스트가 길어지면 간격이 일치하지 않는 문제 발생 해결 과정apportionsSegmentWidthsByContent 속성 사용아이템 width에 따라 세그먼트 width를 조정하는지 여부를 결정// sc : UISegmentedControl(items : [...]).then { sc in ... }sc.apportionsSegmentWidthsByContent = true참고 자료https://developer.apple.com/documentation/uikit/uisegmentedcontrol/1618578-apportionssegmentwidthsbycontent

Swift 2024.10.20