iOS 67

TableView, CollectionView Cell클릭 흔적 없애는 방법

애플 공식문서에 지원하는 메서드를 활용해 보자 설명은 "지정된 인덱스에서 항목을 선택 취소합니다".라고 되어 있다. 실제 적용해 보자. func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { } 함수에서 아래 코드 추가해준다 self.collectionView.deselectItem(at: indexPath, animated: true) 이렇게 되면 다시 돌아와있을때 선택한 셀에 선택한 효과가 없어져 있다.

Refresh Control 위치, Navigation LargeTitle

Refresh Control 위치, Navigation LargeTitle 연락처 앱을 만들던 중 Refresh 기능을 넣었을 때, 개인적으로 LargeTitle 넣었을때 ActivityView의 위치가 어색해 보여서 수정할 수 있는지 찾아 보았다. 그런데 Navigation Title 스타일에 따라 ActivityView의 위치가 다르게 표시 되었고, 커스텀 방법은 찾지 못했다. 공식문서에서 자료를 찾으려고 해도 문서로 되어 있는건 결국 찾지 못했다. 그 대신 아이폰 기본 앱 중 메일, 연락처을 벤처마킹 해보니 아래의 사진과 동일해서, 내부적으로 설정되어 있는 따른 이유가 있을 것 같다. Nomal Large

Swift) 코드로 UITableView 구현하기

Swift) 코드로 UITableView 구현하기 코드로 UITableView를 구현해 봅시다. TableView란?? A view that presents data using rows in a single column. -> "단일 열의 행을 사용하여 데이터를 표시하는 보기 입니다" 라고 공식문서에서 소개해주네요 구현된 TableView를 보자면 아래처럼 각각의 표처럼 View가 되어 있고 하나의 칸마다 데이터가 들어간 것을 볼 수 있네요. 또한 관련 행을 섹션으로 그룹화하여 콘텐츠를 관리하거나 탐색할 수 있습니다. 구성 UITableView는 테이블의 기본 모양을 관리합니다. 하지만 앱은 실제 컨텐츠를 표시하는 각각의 Cell(UITableViewCell)을 제공합니다. 아래의 셀 구성은 아래 처럼 ..

iOS/Swift 2023.02.04

.gitignore 활용

https://www.toptal.com/developers/gitignore 1. 위의 사이트가서 관리하고 싶은 키워드를 기입한다. 2. 만약 이미 작업한 프로젝트를 푸시를 했고, 이후에 적용을 하고 싶다면? 이미 푸시를 했다면, 깃에서 해당 파일들을 트래킹 하고 있기 때문에 이를 제거해야 한다. 과정은 - 먼저 위의 과정과 똑같이 .gitignore를 작성하고 저장한다. - 그리고 레포에 푸시를 하기 전에 한 가지 코드를 추가해서 입력하면 된다. - git rm -r --cached . (-> 캐시에 등록된 트래킹 중인 파일들을 삭제하는 명령어) 이후에는 마찬가지로 - git add . - git commit -m 'commit message' - git push origin main

SwiftUI alert in iOS14

SwiftUI 개발 중 최소타겟 iOS14버전으로 하는 중 alert이 필요한 상황이 있었다. 아래와 같이 .alert 코드 작성 시 아래에 있는 .alert만 호출이 된다. .alert(isPresented: $presentAlert) { Alert( title: Text("Title"), message: Text("Message") ) } .alert(isPresented: $presentAlert2) { Alert( title: Text("Title2"), message: Text("Message2") ) } 그래서 검색해보니 스택오버플로우에서 활용방안에 대해서 나와있었다. https://stackoverflow.com/questions/58069516/how-can-i-have-two-alerts..

iOS/SwiftUI 2023.01.17

@StateObject vs @ObservedObject 차이점

@StateObject 및 @ObservedObject 프로퍼티 래퍼는 SwiftUI 보기에 관촬된 개체의 변경 사항에 대한 응답으로 업데이트하도록 지시합니다. 두 래퍼는 비슷해 보이지만 SwiftUI에서 앱을 빌드할때 중요한 차이점이 있습니다. What is an @ObservedObject? @StateObject와 @ObservedObject의 차이점을 알아보기 전 @ObservedObject가 무엇인지 이해하는 것이 좋습니다. 두 프로퍼티 래퍼 모두 개체가 ObservableObject 프로토콜을 준수해야 합니다. 이 프로토콜은 객체가 변경되기 전 방출하는 게시자가 있는 객체를 나타내며 SwiftUI가 뷰를 다시 그리기를 그리도록 지시할 수 있습니다. ObservableObject를 준수하는 타입..

iOS/SwiftUI 2023.01.07

iOS) UIViewController

뷰 컨트롤러란?? UIKit 앱의 뷰 계층 구조를 관리하는 객체 -> "뷰 컨트롤러는 앱의 근간을 이루는 객체로 모든 앱은 최소한 하나 이상의 뷰컨트롤러를 가지고 있는다." 뷰 컨트롤러의 주된 역활 일반적으로 기본 데이터의 변경에 대한 응답, 뷰의 내용을 업데이트 합니다. 뷰와의 사용자 상호 작용에 응답 뷰 크기 조정 및 전체 인터페이스 레이아웃 관리 앱에서 다른 뷰 컨트롤러를 포함한 다른 개체와의 조정 -> 윈도우 객체로 부터 전달된 이벤트를 받아, 내부적으로 구현된 비즈니스 로직을 실행하고, 그 결과로 얻어진 데이터를 콘텐츠를 만들어 화면에 표현하는 등, 모바일 애플리케이션에서 뷰 컨트롤러는 우리가 하는 대부분의 작업들의 중심에 있다고 생각할 수 있다. 뷰 컨트롤러의 종류 ViewController ..

iOS/iOS 2022.12.06

Swift) NumberFomatter

Swift) NumberFomatter NumberFormatter란? 애플 공식문서에서는 숫자 값과 해당 텍스트 표현 간에 변환하는 포맷터라고 소개하고 있습니다. 조금 더 살펴보는게 좋을 것 같네요. OverView에서 이제 NumberFormatter의 인스턴스는 NSNumber 객체를 포함하는 셀의 텍스트 표현을 포맷하고 숫자 값의 텍스트 표현을 NSNumber 객체로 변환합니다. -> 여기서 NSNumber란 기본 스칼라 숫자 값에 대한 객체 래퍼라고 되어 있는데 추후에 자세히 알아봐야 겠네요. 계속해서 NSNumber는 표현에는 정수, 실수 및 복식이 포함되고, float 및 double은 지정된 소수점 위치로 형식화할 수 있습니다. NumberFormatter 객체는 셀이 허용할 수 있는 숫자..

iOS/Swift 2022.12.02

iOS) 프레임워크와 라이브러리에 대해서

프레임워크 프레임워크란?? 컴퓨터 프로그래밍에서 소프트웨어 프레임워크는 복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 구조 입니다. - by 위키 정리하자면 개발자에게 구조와 형태를 제공하는 뼈대라고 생각할 수 있습니다. 프레임워크가 제공하는 프레임워크 위에 코드를 작성해서 개발할 수 있습니다. 또한 앱의 구동과 메모리 관리도 프레임워크가 해줍니다. 프레임워크를 사용하는 이유 기반 코드를 프레임워크가 제공하기 떄문에 개발자가 손쉽게 개발 진행할 수 있습니다. 프레임워크는 공통적인 틀(기준)을 제공해서 여러 프로젝트를 진행해도 동일한 프레임워크를 사용하면 코드의 기본 틀은 동일 하기 때문에 가독성과 유지보수 관리가 좋아져서 생산성 향상에 도움을 줄 수 있습니다. iOS에서 대표적으로UIKit과 F..

iOS/iOS 2022.10.19