게시글
질문&답변
2024.03.22
TodoCell UIview 생성 후 연결 시 오류
안녕하세요 ai가 자동으로 길게 답변을 달아줬는데 간단히 답변 드리면 xcode버그라 그냥 껐다키거나 코드에서 엔터 몇 번 쳐보거나 파일 지우고 다시 만들거나 하면 될겁니다.
- 0
- 2
- 80
질문&답변
2024.03.20
테이블 뷰 데이터 업데이트 관련 질문
안녕하세요. 질문하신 의도가 '리로드는 무조건 필요한데 바인딩이 왜 필요한가'에 대한 것이라면, 영상에서 보여지는 것처럼, 특정 상황에서는 데이터 변경만으로도 UI 컴포넌트인 레이블을 갱신할 수 있습니다. edit상황에서 리로드 없이 레이블이 변경되는 것을 보시면 이해가 되실겁니다. 그러나, 새로운 데이터가 추가되거나 기존 데이터가 삭제되는 경우와 같이 테이블 뷰의 셀 개수에 변화가 생길 때는 reloadData()를 호출하여 UI를 갱신해야 합니다. 이는 UIKit에는 데이터 바인딩이 직관적으로 내장되어 있지 않기 때문입니다. UIKit은 주로 명령형 프로그래밍에 기반하고 있으며, 데이터와 UI 간의 동기화를 위해 추가적인 리로드 같은 로직이 필요할 수 있습니다. 데이터 바인딩 개념이 대중화된 것은 2000년대 전후로 비교적 최근이므로 바인딩 개념이 없는 프레임워크가 아직 많습니다. UIKit도 바인딩 개념이 표함되지 않았기 때문에 바인딩을 직접 구현할 수 있긴 하지만(클로저등으로 통해) Combine, RxSwift와 같은 라이브러리를 사용하는게 훨씬 간편하므로 이런 라이브러리를 사용하게 됩니다. 그럼에도 이런 라이브러리들이 데이터와 UI 사이의 강력한 바인딩 기능을 제공하지만, UIKit에서는 여전히 셀의 추가나 삭제와 같은 일부 작업에서는 수동으로 UI를 갱신해야 하는 경우가 있습니다. 바인딩을 쓰는 목적은 개발자가 데이터 모델과 UI 업데이트를 수동으로 관리하는 복잡함을 줄이고, 코드의 명확성과 가독성을 향상시키기 위해 도입된 개념입니다. 바인딩이 적절히 구현되어 있다면, 개발자는 주로 데이터 로직에 집중할 수 있으며, UI는 자동으로 갱신되니 로직은 단순명확해 지게 됩니다. 참고로 최신 프레임워크인 SwiftUI는 데이터 바인딩을 핵심 개념으로 삼고 있으며, 데이터의 변화만으로 UI를 자동으로 갱신할 수 있도록 설계되었습니다. 이는 셀의 추가나 삭제와 같은 경우에도 별도의 리로드 과정 없이 UI가 갱신됩니다.
- 0
- 2
- 53
질문&답변
2024.02.26
키보드 떠 있는 상태 만들기
안녕하세요 아마 시뮬레이터라 키보드가 안올라온듯 합니다 command + k 누르면서 확인하면 될 것 같습니다. (사진)
- 0
- 1
- 59
질문&답변
2024.02.25
pageViewController 호출시점
안녕하세요 참고로 아래 매서드를 구현해서 정확하게 페이지 이동완료시마다 이벤트를 받을 수 있습니다. func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)
- 0
- 2
- 75
질문&답변
2024.02.11
20:01 쯤에서
안녕하세요 탭으로 코드블록 안으로 커서가 이동하면 엔터치면 됩니다
- 0
- 1
- 74
질문&답변
2024.01.31
안녕하세요! 강의 자료 관련 문의 드립니다.
안녕하세요 이해하기 쉽도록 문서로 만들어서 수업 자료에 추가 했습니다. 화면의 오른쪽 상단에 수업 자료 를 눌러 다운로드 해 주세요
- 0
- 1
- 64
질문&답변
2024.01.17
TODO List Coredata 질문입니다.
안녕하세요 원래는 자동으로 생성되고 잡히는건데 안되면 Xcode껐다 키거나 엔티티를 삭제하고 다시 만들어보면 될 듯 싶습니다.
- 0
- 1
- 106
질문&답변
2023.12.18
비율로 레이아웃 설정하기 -1
안녕하세요 autolayout 설정에서 비율(ratio)을 85:53으로 설정할 때, 이는 너비(width)대 높이(height) 의 비율을 의미합니다. 이 비율을 수학적으로 표현하면, 너비를 높이로 나눈 값이 85/53이 되어야 합니다. 즉, 너비는 높이의 약 1.60377배가 됩니다. 이를 수식으로 나타내면 width = 1.60377 * height 가 됩니다. 다시 말하자면 여기서 1.60377은 85를 53으로 나눈 값입니다. 이렇게 되는 이유는, 비율을 설정할 때 한쪽 길이를 다른 쪽 길이의 배수로 설정하기 때문입니다. 그 배수를 곱해야 한쪽길이에 맞춰 비율에 맞는 다른쪽 길이가 정해지기 때문입니다. 쉽게 말해 그냥 단순히 비율에 맞게 높이와 너비가 정해진다는 것입니다. 그런데 여기서 10이라는 constant 수치를 줬다고 가정하면 위 계산식에 그 10을 추가하면 됩니다. 그래서 width = 1.60377 * height + 10 의 계산식이 나오는 것입니다. 그리고 이 공식을 autolayout화면에서 친절하게 보여주고 있다고 보시면 됩니다. 여기서 우리가 생각할 건 우리는 이미 width를 100으로 고정했다는 것이죠. 이 고정된 100은 width라는걸 계산식에 대입하면, 100 = 1.60377 * height + 10 이 됩니다. 이 계산에서 height를 구하기 위해 치환하면, height = (100 - 10) / 1 .60377 이라는 식으로 됩니다. 결과는 61.72 정도 나올거구요 여기서 주어진 계산식의 계산을 확인하기 위해 치환하는건 개발자가 직접 해야되겠죠? 그럼 반대로 height를 100으로 고정했다고 가정해 봅시다. 처음에 말한 width = 1.60377 * height 라는 계산식에서 height를 대입하면 width = 1.60377 * 100 이 되겠죠? 그럼 width는 160.3정도 나올겁니다. 그럼 이때도 constant 10을 줘봅시다. 그럼 계산식은 width = 1.60377 * 100 + 10 이 되는 것입니다. 계산해보면 width는 170정도 나오죠. 정리하면 width = ratio * height 이 식만 잘 기억하시고 여기에 constant수치가 있으면 더하기만 하면됩니다. width = ratio * height + constant 이렇게 말이죠 이 강의에서는 1.60377이 왜 나왔는지에 대한 비율 설명과, 비율을 어떻게 적용하는지 설명한 것이고 그래서 이해하기 쉽게 뷰의 height가 정해지면 width에 constant값 만큼 그대로 더해진다고 설명한거고 뷰의 width가 정해지면 비율값으로 constant가 height에 정해진다고 표현한 것입니다. 끝으로 제 설명이 모호했던게 있었던 것 같습니다. 다시한번 이 챕터의 영상을 검토해서 수정해 보도록 하겠습니다.
- 0
- 3
- 176
질문&답변
2023.10.11
혹시 추가예정인 강의가 대략 언제쯤 나오는지 알수있을까요..?
안녕하세요 제가 10월 4일쯤에 강의를 올렸고 인프런 쪽에서 걸리는 일수가 최대 14일 정도 말씀하시는것 같더라고요. 그래서 올라가는건 이번주 아니면 다음주쯤 되지 않을까 싶습니다.
- 0
- 1
- 167
질문&답변
2023.08.28
Grid View 강의에서 animation 질문
안녕하세요 .animation(.default, value: UUID()) 이렇게 하시면 전처럼 자연스럽게 애니메이션 나올거예요
- 0
- 1
- 205