본문 바로가기

분류 전체보기

(54)
UIKit에서 UICollectionView에 SkeletonView 간단하게 사용해보기 GitHub - Juanpe/SkeletonView: ☠️ An elegant way to show users that something is happening and also prepare them to which con☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting - Juanpe/SkeletonViewgithub.com위 링크를 통해 Xcode SPM에 라이브러리 패키지 추가 사용할 뷰컨트롤러에 SkeletonView를 importimport SkeletonView collectionView에서 사용되는 cell의 View들(compone..
UIKit - resignFirstResponder() & becomeFirstResponder() 📘 UITextField의 키보드 내리기키보드를 내려야 하는 경우아예 View 자체 혹은 UITextField 혹은 SearchBar에나 편집끝났으니까 키보드 그냥 내려줘 라고 메서드를 통해강제로 키보드를 내릴 수도 있다.해당 메서드는 아래와 같고,view.endEditing(_ force: Bool)textField.endEditing(_ force: Bool) 호출을 하게될 경우 코드는 아래와 같다.view.endEditing(true)textField.endEditing(true) 아니면, Storyboard를 통해 didEndEditing IBAction을 연결해주면 해결이 될 것이다. 📕 resignFirstResponder() & becomeFirstResponder() 하지만 나의 경우..
UIKit - IBOutlet, IBAction 연결관계 에러 해결 방법 IBOutlet의 변수명을 변경하면서 에러가 발생  1. 뷰 객체 연결에 에러가 있을 경우 에러 메시지 확인2. 인스펙터 영역 확인에러가 예상되는 ViewController를 선택 후 커넥션 인스펙터 영역을 확인노란색 경고가 발생한 warning의 x 버튼을 눌러 잘못된 연결관계를 끊어줌 3. 객체 재연결인스펙터 영역에서 연결하고 싶은 아웃렛을 선택하여 스토리보드 뷰 객체 영역과 재 연결📚 Rename을 통해 객체 재연결 없이 변수명 바꾸기
UIKit - Default Button 이상현상 해결법 버튼을 Default 스타일로 사용하다보면 이러한 현상이 발견되는데이미지 에셋에 가보면 해당 이미지의 Render As가 Default Image일 가능성이 높음그렇다면 해당 이미지의 Render As를 Default Image에서 Original Image로 변경   잘 해결된 것을 확인할 수 있다. 코드로도 변경이 가능let playImage = UIImage(named: "play")?.withRenderingMode(.alwaysOriginal)self.playButton.setImage(UIImage(named: "play"), for: .normal)
UIKit & Interface Builder 툴바 영역Run, Stop Button, Scheme, Run DestinationRun Button을 누르면 Run Destination으로 설정한 시뮬레이터 혹은 디바이스로 앱이 빌드됩니다.Activity Indicator빌드 중, 정지 등의 상태를 보여주며, 프로젝트에 문제가 있을 경우 경고 혹은 에러 등의 문구를 보여줍니다.Object Library ButtonInterface Builder(Storyboard) 에서 UILabel, UIButton 등으로 Scene을 구성할 때 사용하는 버튼입니다.Workspace Configuration Buttons창을 넓게 사용하는 용도로 주로 사용합니다.네비게이터 영역주로 프로젝트 네비게이터 영역을 사용하며, 프로젝트가 가지고 있는 파일 목록을 보여주는 ..
iOS - Xcode에서 새 iOS 프로젝트 생성 📕 프로젝트 생성먼저 Xcode App을 실행한 후Create New Project를 클릭해줍니다.우리는 iOS 프로젝트를 생성해줄 것이기 때문에iOS -> App 을 선택하고 Next를 클릭해줍니다. 그러면 이러한 창이 보여지게 되는데하나하나 설명하면서 가보겠습니다.Product Name프로젝트의 이름을 정해주는 항목입니다.배포 혹은 출시 할 때 사용하는 이름과는 무관합니다.하지만 애플의 고유한 키워드(ex. iOS, UIKit) 또는 한글 등을 입력 시에는 에러가 발생할 수 있습니다.TeamApple Developer Program 에 등록된 개발자 계정이 목록에 나타나며, Appstore에 앱의 소유자가 보여집니다.None으로 할 경우 시뮬레이터에 빌드는 가능하지만 실제 기기에서 빌드는 불가능하며..
Swift - 생성자(Initializer) 특별한 메서드 키워드인 'init' 을 가짐초기화는 클래스, 구조체, 열거형의 인스턴스를 생성하는 과정타입의(클래스, 구조체) 각 '저장 속성'에 대한 초기값을 설정하여 인스턴스를 사용가능한 상태로 만드는 것오버로딩을 지원기본 생성자 자동 제공(생성자를 직접 구현하지 않은 경우)클래스: 기본 생성자 init() 제공구조체: 기본 생성자 init() + 멤버와이즈 이니셜라이저 제공📚 멤버와이즈 이니셜라이저직역하면 멤버와 관련된 생성자구조체의 특별한 생성자Note구조체는 멤버와이즈 이니셜라이저 자동 제공이니셜라이저를 구현하지 않아도 자동으로 생성되는 이니셜라이저구조체는 저장 속성들이 기본값을 가지고 있더라도, 추가적으로 멤버와이즈 이니셜라이저를 자동 제공이니셜라이저를 구현하면, 멤버와이즈 이니셜라이저가 자..
Swift - 속성과 메서드 📕 class 인스턴스 메서드 class로 선언된 형태의 코드는 메모리의 데이터 영역에 저장되어 있으며 class의 메서드는 메모리의 코드 영역에 명령어의 집합 형태로 저장되어 있고 데이터 영역에 저장된 class의 메서드는 코드 영역에 저장된 메모리의 주소를 갖고 있음. class Introduce { var name: String var age: Int var country: String init(name: String, age: Int, country: String) { self.name = name self.age = age self.country = country } func speak() { print("안녕하세요, 저의 이름은 \(self.name)이고\n나이는 \(self.age)세이며\n..