iOS
-
왜 CustomCell을 사용할때 오류가 발생할까? 일반적으로 TableViewCell이나 CollectionViewCell을 만들고 사용할때를 보자 셀 등록 tableView.register(UINib(nibName: "MyTableViewCell", bundle: nil), forCellReuseIdentifier: "MyTableViewCell") collectionView.register(UINib(nibName: "MyCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "MyCollectionViewCell") 재사용 guard let cell = tableView.dequeueReusableCell(withIdentifier: "My..
[iOS] CustomCell을 등록하고 재사용할때 실수를 줄이기 위한 방법왜 CustomCell을 사용할때 오류가 발생할까? 일반적으로 TableViewCell이나 CollectionViewCell을 만들고 사용할때를 보자 셀 등록 tableView.register(UINib(nibName: "MyTableViewCell", bundle: nil), forCellReuseIdentifier: "MyTableViewCell") collectionView.register(UINib(nibName: "MyCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "MyCollectionViewCell") 재사용 guard let cell = tableView.dequeueReusableCell(withIdentifier: "My..
2023.03.14 -
SwiftUI 프로젝트를 생성하면 UIKit 프로젝트와 다르게 Info.plist 파일이 보이지 않는다 왜 보이지 않는가하니 애플 공식문서를 보면 Xcode13버전부터 Info.plist 파일이 생성되나 정보탭이아닌 프로젝트 탭에서 필드를 추가할 수 있다고합니다. 앞으로 SwiftUI 프로젝트는 프로젝트 파일의 Targets에서 Info탭에서 필드를 추가하면 됩니다.
[iOS] SwiftUI에서 Info.plist 설정하기SwiftUI 프로젝트를 생성하면 UIKit 프로젝트와 다르게 Info.plist 파일이 보이지 않는다 왜 보이지 않는가하니 애플 공식문서를 보면 Xcode13버전부터 Info.plist 파일이 생성되나 정보탭이아닌 프로젝트 탭에서 필드를 추가할 수 있다고합니다. 앞으로 SwiftUI 프로젝트는 프로젝트 파일의 Targets에서 Info탭에서 필드를 추가하면 됩니다.
2023.03.02 -
info.plist에서 프로퍼티를 추가하면 앱을 실행할때 LightMode 또는 DarkMode로 강제할 수 있다. info.plist에서 설정을 하면 디바이스가 다크모드여부에 상관없이 info.plist에서 설정한 값으로 앱을 실행한다. 설정방법 info.plist에서 Information Property List에서 행을 추가해준다 행을 추가한뒤 Key값에 Appearance라고 쳐준다 이제 Value값에 Light 또는 Dark라고 입력하면 끝이다.
[iOS] info.plist에서LightMode, DarkMode 강제하기info.plist에서 프로퍼티를 추가하면 앱을 실행할때 LightMode 또는 DarkMode로 강제할 수 있다. info.plist에서 설정을 하면 디바이스가 다크모드여부에 상관없이 info.plist에서 설정한 값으로 앱을 실행한다. 설정방법 info.plist에서 Information Property List에서 행을 추가해준다 행을 추가한뒤 Key값에 Appearance라고 쳐준다 이제 Value값에 Light 또는 Dark라고 입력하면 끝이다.
2023.03.02 -
AppDelegate 생성하기 AppDelegate.swift파일을 추가 아래 코드를 AppDelegate 파일에 추가 import Foundation import UIKit class AppDelegate: NSObject, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { return true } } 코드를 추가한 뒤 Project명 + App.swift 파일로 이동하여 다음 코드를 추가 import SwiftUI @main struct Swif..
[iOS] Xcode13 이상 SwiftUI 프로젝트 설정하기AppDelegate 생성하기 AppDelegate.swift파일을 추가 아래 코드를 AppDelegate 파일에 추가 import Foundation import UIKit class AppDelegate: NSObject, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { return true } } 코드를 추가한 뒤 Project명 + App.swift 파일로 이동하여 다음 코드를 추가 import SwiftUI @main struct Swif..
2023.03.02 -
Label, Button, View 등과 같이 UIKit의 Object 모서리를 둥그렇게 만들어보자 오브젝트의 layer의 cornerRadius에 값을 주면 object의 틀을 얼마나 깍을지 정하고 오브젝트에 clipsToBounds 값을 True로 변경해주면 object의 틀을 벗어나는 부분을 잘라주어 모서리가 둥그렇게 변하는 것이다 import UIKit import SwiftUI class ViewController: UIViewController { lazy var label: UILabel = { let label = UILabel() label.backgroundColor = .tintColor label.text = "Test" label.textAlignment = .center labe..
[iOS] CornerRadius를 활용하여 동그랗게 만들기Label, Button, View 등과 같이 UIKit의 Object 모서리를 둥그렇게 만들어보자 오브젝트의 layer의 cornerRadius에 값을 주면 object의 틀을 얼마나 깍을지 정하고 오브젝트에 clipsToBounds 값을 True로 변경해주면 object의 틀을 벗어나는 부분을 잘라주어 모서리가 둥그렇게 변하는 것이다 import UIKit import SwiftUI class ViewController: UIViewController { lazy var label: UILabel = { let label = UILabel() label.backgroundColor = .tintColor label.text = "Test" label.textAlignment = .center labe..
2023.02.27 -
UIKit로 앱을 만들다 결과를 확인하려면 항상 시뮬레이터를 통해 어플을 실행해야 결과물을 확인 할 수 있는데 SwiftUI를 활용하여 앱을 실행하지 않고도 결과물을 미리 확인할 수 있다. 간단한 Label을 추가한 ViewController이지만 결과물 확인을 위해선 시뮬레이터를 실행하여 확인하여야 한다. import UIKit class ViewController: UIViewController { lazy var firstLabel: UILabel = { let label = UILabel() label.text = "First Label" label.textColor = .black label.backgroundColor = .lightGray label.font = .systemFont(ofSi..
[iOS] 시뮬레이터를 실행하지 않고 SwiftUI를 활용하여 UIKit 앱 미리보기UIKit로 앱을 만들다 결과를 확인하려면 항상 시뮬레이터를 통해 어플을 실행해야 결과물을 확인 할 수 있는데 SwiftUI를 활용하여 앱을 실행하지 않고도 결과물을 미리 확인할 수 있다. 간단한 Label을 추가한 ViewController이지만 결과물 확인을 위해선 시뮬레이터를 실행하여 확인하여야 한다. import UIKit class ViewController: UIViewController { lazy var firstLabel: UILabel = { let label = UILabel() label.text = "First Label" label.textColor = .black label.backgroundColor = .lightGray label.font = .systemFont(ofSi..
2023.02.25 -
가끔 프로젝트를 통채로 복사해야하는 경우가 생기는데 이렇게 복사할 경우 설정해줘야하는 것들이 있다. 먼저 프로젝트를 복사한다. 그런 다음 복사한 프로젝트의 이름을 원하는 이름으로 바꾸어주고 폴더내의 Dervied Data를 삭제해준다 그 다음 변경한 프로젝트 폴더내의 있는 프로젝트파일과 하위 디렉토리 또한 이름을 변경해준다 그런 다음 변경한 프로젝트 파일을 실행해준다 프로젝트안의 하위 디렉토리의 파일명을 바꿔준 뒤 마찬가지로 프로젝트 내의 Target 이름을 변경해주고 Build Settings에서 Info.plist의 경로와 Project Bundle Identifier의 이름도 변경해준다 그 다음 Product 탭에서 Scheme -> Manage Schemes를 보면 스키마이름을 변경된 프로젝트 이..
[Xcode] 프로젝트 복사가끔 프로젝트를 통채로 복사해야하는 경우가 생기는데 이렇게 복사할 경우 설정해줘야하는 것들이 있다. 먼저 프로젝트를 복사한다. 그런 다음 복사한 프로젝트의 이름을 원하는 이름으로 바꾸어주고 폴더내의 Dervied Data를 삭제해준다 그 다음 변경한 프로젝트 폴더내의 있는 프로젝트파일과 하위 디렉토리 또한 이름을 변경해준다 그런 다음 변경한 프로젝트 파일을 실행해준다 프로젝트안의 하위 디렉토리의 파일명을 바꿔준 뒤 마찬가지로 프로젝트 내의 Target 이름을 변경해주고 Build Settings에서 Info.plist의 경로와 Project Bundle Identifier의 이름도 변경해준다 그 다음 Product 탭에서 Scheme -> Manage Schemes를 보면 스키마이름을 변경된 프로젝트 이..
2023.02.22 -
Xcode의 DerivedData의 저장위치를 현재 프로젝트 폴더 밑으로 변경해보자 Xcode를 실행하여 환경설정으로 들어가보면 Settings 창에서 Locations 탭을 눌러보면 Derived Data가 Default로 설정되어 있다. Defaults로 설정되어있다면 프로젝트 폴더에는 프로젝트파일과 프로젝트 폴더만 존재할텐데 DerivedData 세팅을 Relative로 바꾸어주면 프로젝트 폴더안에 DerivedData 폴더가 생성된것을 볼 수 있다.
[Xcode] DerviedData 저장 위치 프로젝트 폴더 내로 변경Xcode의 DerivedData의 저장위치를 현재 프로젝트 폴더 밑으로 변경해보자 Xcode를 실행하여 환경설정으로 들어가보면 Settings 창에서 Locations 탭을 눌러보면 Derived Data가 Default로 설정되어 있다. Defaults로 설정되어있다면 프로젝트 폴더에는 프로젝트파일과 프로젝트 폴더만 존재할텐데 DerivedData 세팅을 Relative로 바꾸어주면 프로젝트 폴더안에 DerivedData 폴더가 생성된것을 볼 수 있다.
2023.02.22