분류 전체보기 261

xcode swift - view를 추가해도 안보일때?

func configureView(year: Int, month: Int) { self.year = year self.month = month var yearLabel = UILabel() var monthLabel = UILabel() yearLabel.text = String(year ?? 0) monthLabel.text = String(month ?? 0) yearLabel.backgroundColor = UIColor.red self.addSubview(yearLabel) self.addSubview(monthLabel) } 이런식으로 뷰를 추가하여도 안보일때가 있다. var yearLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 5..

카테고리 없음 2021.08.09

swift xcode - Storyboard ID란?

개발하다 보면 xcode에 Storyboard ID라는게 있습니다. 언제 사용하는 건고 하니 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let _ = (scene as? UIWindowScene) else { return } let storyboard = UIStoryboard(name: "Total", bundle: nil) guard let vc = storyboard.instantiateViewController(withIdentifier: "Total") as? TotalViewController else { ..

ios개발 2021.08.09

swift xcode custom font 추가하기, 원하는 폰트 찾는 방법.

일단 폰트를 찾는 방법은 https://fonts.google.com/?preview.text=January&preview.text_type=custom Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 구글 폰트를 사용하면 된다. 라이센스가 적혀있는데 전부 무료인거 같다. 그리고 버튼을 클릭하여 다운로드 받고 파일을 추가 하여준다. 그리고 info.plist에도 알려줘야 한다. 어떤 파일이 커스텀 폰트 파일인지. 그리고 마지막으로 오른쪽 창에서 타겟 맴버쉽을 꼭 확인해준다.

ios개발 2021.08.09

swiftUI - 글자 위치 높이 조절하기, baselineOffset

baselineOffset이라는 말을 몰랐다. 개발중에 단어의 위치를 조금 내리거나 올리고 싶을때가 있는데, 글자를 포함한 라벨?의 높이를 조절하는 방법도 있겠지만, 이게 부적절한 경우도 있다. 그럴 경우 baselineOffset을 이용하면 좋다.. HStack(alignment: .top) { Text("Hello") .baselineOffset(-10) .border(Color.red) Text("Hello") .border(Color.green) Text("Hello") .baselineOffset(10) .border(Color.blue) } .background(Color(white: 0.9))

ios개발 2021.08.09

<swift> watchOS로 ios앱 foreground에서 작동하게 하기

결론부터 말하면 워치앱에서 swift 코드를 사용하여, ios앱의 foreground로 오게하는 것은 불가능하다. 왜냐하면 ios앱을 강제로 열게하는 코드는 ios에서 애플의 정책상 존재하지 않는다. 같은 이유로 로컬, 원격 노티피케이션을 통해서 ios앱을 강제로 폰의 foreground 상태(앱이 폰에서 켜진 상태)로 올릴 수 는 없다. 하지만 워치의 명령에 의해 ios앱이 폰의 백그라운에서 작동하도록 하는 것은 가능하다! 또한 반대로 폰에서 워치 앱을 foreground 상태로 오도록 하는 것도 가능하다!

카테고리 없음 2021.08.09

swift Realm 기본 사용법과 예제 - 저장하기, 꺼내기, 업데이트, filter

1. podfile에 두개를 추가해주고, pod upate를 합니다. pod 'Realm' pod 'RealmSwift' 2. 그리고 저장하려는 데이터의 타입에 맞춰 모델을 선언해 줍니다. import RealmSwift class GoalInfoModel: Object { @objc dynamic var goalWeight: Double = 0 } 3. 그리고 이제 저장과 꺼내기, 업데이트를 관리할 클래스를 생성합니다. RealmSwift를 임포트 하고 realmInstance를 아래처럼 선언합니다. 그리고 저장은 add를 통해서 하고, 꺼내는 것은 objects를 통해 할 수 있습니다. 이때 원리는 해당 오브젝트 타입으로 저장된 모든 객체들이 꺼내지므로, first를 통해 그중에 가장 먼저 저장된 것..

ios개발 2021.08.09

<iOS 디자인패턴> swift MVC - 쉽게 설명

MVC 사실 스위프트 MVC로 검색해보면 말이 다 너무 어렵고, 설명만 봐서는 api 호출은 어디서할지, 모델을 여기서 변경해도 될지, notification은 어디다 걸어야 될지 등이 어렵다. 여기서의 설명이 꼭 맞지는 않지만 이렇게 해도 되구나 그냥 생각해보면 되겠다. 일단 밑에는 https://www.edwith.org/swiftapp/lecture/26620?isDesc=false 여기서 가져온 내용인데, 내가 바라본 입장에서 좀 더 설명해보겠다. 틀린 내용이 있으면 댓글 부탁드립니다. 1. Model 앱이 무엇인지에 대해 관심을 가집니다. -> 앱이 가지는 데이터들을 정의한다. 즉 일기 앱이면 앱은 날짜와 메모 사항을 저장하고, 이를 모델에서 정의하는 것이다. struct Diary { var ..

기타/iOS 기초 2021.07.24

Swift - Getters and Setters 스위프트 get, set

Getters and Setters 기본적으로 상수, 변수, 프로퍼티들 그리고 subscript들은 자동적으로 그들이 속한 상수,변수,프로퍼티 또는 섭스크립트와 동일한 수준의 접근 제한 레벨을 갖는다. 우리는 아래에서 한 변수의 get - 변수를 참조할때, set - 변수를 설정할 때의 접근 제한 레벨을 다르게 설정하는 법에 대해 알아볼 것이다. 즉 변수를 가져와 사용할때는 private인데, 변수에 값을 넣을때는 internal일 수 있다!! struct TrackedString { private(set) var numberOfEdits = 0 var value: String = "" { didSet { numberOfEdits += 1 } } } 위에서 TrackedString 구조체랑 value 프..

ios개발 2021.07.24

Swift - Access Control, 스위프트 제한자(open, public, internal, fileprivate, private)

open, public - 프로젝트안의 모든 모듈간에 사용이 가능하다. 즉 import로 불러온 모듈의 open으로 변수도 접근이 가능하다. 그래서 보통 모듈의 api 인터페이스들을 선언할때 주로 사용한다. 아래 코드의 예를 들면 import alamofire로 불러와서 alamofire의 upload 함수가 open으로 선언된 함수이다. Alamofire.upload(multipartFormData: { multipartFormData in multipartFormData.append(imageData, withName: "imagefile", fileName: "image.jpg", mimeType: "image/jpeg") }, to: "http://api.imagga.com/v1/content",..

ios개발 2021.07.24