본문 바로가기

전체 글396

개발일지 36일차 (07/30) - coder? / 배너 로직적용 보호되어 있는 글 입니다. 2022. 7. 30.
개발일지 35일차 (07/29) - currentSubUserIndex 관련 문제 튕김 해결 / 배너로직 구현 보호되어 있는 글 입니다. 2022. 7. 29.
개발일지 34일차 (07/28) - 배너로직 구현 보호되어 있는 글 입니다. 2022. 7. 28.
개발일지 33일차 (07/27) - 오류 수정 보호되어 있는 글 입니다. 2022. 7. 27.
개발일지 32일차 (07/26) - 쇼핑탭관련 작업 보호되어 있는 글 입니다. 2022. 7. 26.
개발일지 31일차 (07/25) - 쇼핑탭 이슈 해결 보호되어 있는 글 입니다. 2022. 7. 25.
개발일지 30일차 (07/22) - 식단 즐겨찾기버튼 중복방지 보호되어 있는 글 입니다. 2022. 7. 22.
개발일지 29일차 (07/21) - 쇼핑탭 풀모달 구현(WKWebView) 보호되어 있는 글 입니다. 2022. 7. 21.
개발일지 28일차 (07/20) - 배너로직 이해와 문답 보호되어 있는 글 입니다. 2022. 7. 20.
개발일지 27일차 (07/19) - 1차 하자보수 보호되어 있는 글 입니다. 2022. 7. 19.
Stack SwiftUI에서 Stack은 VStack, HStack, ZStack 총 3개가 있다. VStack은 "Vertical Stack", HStack은 "Horizontal Stack", ZStack은 "Z axis Stack"을 의미한다. (위의 그림참고) 각각의 Stack을 다루는 방법을 배워보자. 1. VStack [VStack 확인하기] VStack 내부에 Rectangle() 3개를 추가하면 아래와 같은 화면이 뜬다. VStack 내부에 추가했기때무에 수직으로 쌓인다. [VStack의 속성] 1. VStack의 크기 설정과 백그라운드 설정 VStack의 크기는 frame(width: ,height: )를 사용해서 조절할 수 있다. .frame(width: ,height: ) 2. VStack 내부.. 2022. 7. 18.
Set Image 오늘은 위와 같이 이미지와 Text를 이용한 프로필화면을 구현해보자. 시작하기 전에 SF Symbols(애플의 시스템 이미지를 사용하기 위함)를 다운 받아주자. (링크) 1. Circle ImageView 만들기 우선 새로운 파일을 만든다. (CircleImageView) 그리고 아래와 같이 ContentView처럼 틀을 만들어준다. [만들기 전 ImageView에 대한 경험] import SwiftUI struct CircleImageView : View { var body: some View { Text("CircleImageView") } } struct CircleImageViews: PreviewProvider { static var previews: some View { CircleImageV.. 2022. 7. 15.
Text 여러 Component들은 해당 Component의 텍스트를 작성하고 .(dot)으로 그 Component에 대한 속성을 작성해서 UI를 구현한다. Text도 마찬가지로 아래와 같이 구현이 가능하다. import SwiftUI struct ContentView: View { var body: some View { Text("Hello, world!") .font(.system(size: 30)) .fontWeight(.heavy) .foregroundColor(.green) .background(.orange) } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } 1. 폰트 [.. 2022. 7. 14.
개발일지 26일차 (07/14) - 아이그립X QC 보호되어 있는 글 입니다. 2022. 7. 14.
웹뷰 띄우기 1. 웹View 만들기 우선 웹뷰를 만들기 위해서 새로운 파일을 하나 만들자. 코드를 작성하기 이전에 없는 info.plist를 만들어주자. (나타내자) - 링크 import SwiftUI import WebKit //MARK: UIViewRepresentable: UIKit의 UIView를 사용할 수 있도록 한다. struct MyWebView: UIViewRepresentable { var urlToLoad: String //MARK: - UIView 만들기 func makeUIView(context: Context) -> WKWebView { //언래핑 - 너가 가져온 url 값이 비어있다면 WKWebView를 반환 guard let url = URL(string: self.urlToLoad) el.. 2022. 7. 13.
개발일지 25일차 (07/13) - 아이그립X QC 보호되어 있는 글 입니다. 2022. 7. 13.
@Binding - 데이터 연동 이번 글은 이전 글의 코드를 이어서 진행하겠다. @Binding을 이용해서 다른 View에서도 데이터를 연동할 수 있도록 해보자. 1. @Binding을 사용하고 다른 View에서 해당 변수를 사용해야하기 때문에 Private를 쓰지 않고 변수를 선언하자. //MARK: 데이터를 연동 @Binding var isActivated: Bool 2. init을 사용해서 기본값을 설정해주자. //MARK: 생성자 - 기본값 설정과정 init(isActivated: Binding = .constant(true)) { _isActivated = isActivated } 3. Bool 값에 따라서 속성을 변경해보자. import SwiftUI struct MyVStackView: View { //MARK: 데이터를 .. 2022. 7. 12.
@State - 상태변화 감지 이번 글은 이전 글의 코드를 이어서 진행하겠다. 1. 탭 제스처를 사용자가 했을 때 HStack의 padding, Color가 변경되게 만들어보자. 우선 제스처를 했는지 확인하는 과정이 필요하다. 따라서 HStack의 속성에 탭 제스처를 했는지 확인후 탭 제스처를 했다면 해당 로직을 실행하는 속성을 추가해보자. .onTapGesture { //코드 } 내부에 탭을 했다면 "탭을 했습니다!" 라고 print 되도록 코드를 작성해보자. import SwiftUI struct ContentView: View { var body: some View { HStack { MyVStackView() MyVStackView() MyVStackView() } .padding(10) .background(Color.red.. 2022. 7. 12.
SwiftUI와 친해지기 프로젝트 구성 새로운 프로젝트를 만들 때 Stoyboard가 아니라 SwiftUI를 선택해서 생성하면 아래와 같은 파일들이 뜨게 된다. 프로젝트 이름App.swift ContentView.swift Assets.xcassets Preview Content Preview Assets.xcassets 1. 프로젝트 이름App.swift SwiftUI로 된 프로젝트를 생성하면 Stoyboard로 된 프로젝트와 다른 점이 있다. AppDelegate와 SceneDelegate가 없다는 점이다. 물론 애플도 생각 없이 없애진 않았다. AppDelegate와 SceneDelegate의 역할은 "프로젝트 이름App.swift"의 파일에서 주어진 메서드를 통해서 해결할 수 있다. (자세한 내용은 추후 배우면서 알아보겠.. 2022. 7. 12.
개발일지 24일차 (07/11) - 아이그립X 측정실패 로직 변경 보호되어 있는 글 입니다. 2022. 7. 11.
개발일지 23일차 (07/09) - 아이그립X QC 보호되어 있는 글 입니다. 2022. 7. 9.
userNotificationCenter의 willPresent 함수를 백그라운드에서 실행하는 방법은 뭘까? (미해결) 현재의 상황: willPresent를 백그라운드에서 실행되도록하여 알람이 실행되었을 때 소리를 울리게 한다거나, 진동이 울리도록 만들려고 한다. 문제: willPresent가 백그라운드에서 실행되지 않기 때문에 소리, 진동을 울리게 할 수 없다. 해결: 2022. 7. 7.
개발일지 22일차 (07/05) - 아이그립X QC 보호되어 있는 글 입니다. 2022. 7. 5.
label 행간 조정 func labelSetting(label: UILabel) { label.numberOfLines = 0 // Label의 글자 줄을 제한두지 않음. let attrString = NSMutableAttributedString(string: label.text ?? "") // 텍스트에 대한 관련 속성이 있는 문자열 let paragraphStyle = NSMutableParagraphStyle() // 문단 스타일 속성의 하위 속성 값을 변경하는 개체 paragraphStyle.lineSpacing = 3 // 행간 조정 attrString.addAttribute(NSAttributedString.Key.paragraphStyle, value: paragraphStyle, range: NSMakeRa.. 2022. 7. 5.
개발일지 21일차 (07/01) - 아이그립X_JC780연결 보호되어 있는 글 입니다. 2022. 7. 1.
[소스트리] Authentication Required 입력하기(GitLab) 로컬 저장소 추가하기를 누르고 저장소를 선택하면 위와 같은 창이 나타나는 경우가 있다. 1. Username은 어디서 찾나? gitlab의 User Settings - Account - Change username의 path가 있는데 이때의 https://gitlab.com/ 뒤에 있는 단어가 username이다. 2. password는 어디서 찾나? password는 User Settings - Access Tokens을 발급하면 나오는 문자열을 입력하면 된다. 2022. 6. 29.
개발일지 20일차 (06/29) - 아이그립X 장치 검색 오류 보호되어 있는 글 입니다. 2022. 6. 29.
GitHub 잔디가 안심어지는 상황 / 프로젝트별 GitHub name, email 설정하기 프로젝트를 개발하고 커밋, 푸쉬를 해도 잔디가 심어지지 않는 증상이 있다. 본인의 경우 다른 프로젝트를 진행하다가 개인 프로젝트도 병행하는 과정에서 잔디가 심어지지 않는 현상이 일어났다. 이 경우의 원인은 깃허브의 이메일과, 이름이 다르게 설정되어 있다. 정확히는 깃허브의 이메일과 이름이 깃랩의 이메일과 이름으로 설정되어있어서 잔디가 심어지지 않았다. 따라서 나는 현재 깃허브의 이메일과 이름이 어떤 식으로 정의되어 있는지 아래의 명령어로 파악했다. 현재 git 이름, 이메일 설정상태보기 git config --list 그리고 나서 내가 잔디를 심으려는 깃허브 계정의 이름, 이메일과 다르다는 것을 확인하고 아래의 명령어를 사용해서 해결했다. 1. 내 pc 모든 User.email, User.name 변경하.. 2022. 6. 28.
개발일지 19일차 (06/28) - 아이그립 X 보호되어 있는 글 입니다. 2022. 6. 28.
dismiss를 하고 이벤트 발생 시키는 방법 참고: 스택오버플로우 화면전환시 이벤트를 발생시키려면 생명주기를 활용해서 해당 이벤트를 실행시키면 된다. 하지만 dismiss를 사용하는 경우 생명주기를 거치지 않는다. (.FullScreen은 제외) 이런 상황에서 이벤트는 어떻게 발생시켜야할까? 1. 첫번째 ViewController에 프로토콜을 정의한다. protocol ViewControllerDelegate: UIViewController { func refresh() } 2. 두번째 ViewController에 delgate를 만든다. weak var delegation: ViewControllerDelegate? 3. delegate = self를 통해서 delegate 지정 delegation = self 4. 프로토콜을 채택하고, 해당 프.. 2022. 6. 23.