swift(5)
-
[RxSwift #5] Driver란 무엇일까?
일단 정말정말 오랜만에 글을 쓴다. 작년 추석 때가 마지막이었던 것 같은데.... 중간고사 기간부터 종강할 때까지 너무너무 바빴다..! 그래서 사실 Driver에 관한 글을 써야한다는 사실도 잊고있었다. 일단 마지막으로 글을 쓴게 작년이라니!! 오늘은 벌써 새해가 되었다. 신년이다. 어떻게 이럴수가!!! 간단하게 복습 일단 지난 글에서 다뤘던 것을 간단하게 복습하자면, Relay에 관한 내용을 공부했었다. Relay는 Subject를 Wrapper class로 감싼 형태로, error나 complete를 발생하지 못하게 하는 것이 목적이었다. 그렇다면 이제 이 Relay의 사용법을 알아야 한다. 왜 Wrapper 클래스로 감쌌으며, 어떤 목적을 위해, 어떻게 사용해야 할까? Driver란? 먼저 Driv..
2022.01.01 -
[iOS] UICollectionView 사용법
가장 먼저 Storyboard에서 기본 View Controller에 Collection View를 넣어줍니다. 그럼 위와 같은 모양으로 컬렉션 뷰가 생성됩니다. constraint 도 넣어주도록 합니다. 상하좌우 여백이 없도록 0으로 넣어주겠습니다. 그 후 cell을 디자인해줍니다. cell에 vertical stack view를 넣어 주고 그 안에 image view 와 label을 넣어주었습니다. 다음은 이 뷰에 관한 Controller 클래스 를 만들어주었습니다. Storyboard 에서 custom class에 방금 생성한 클래스의 이름을 넣어주면 아울렛 변수를 연결할 수 있는 상태로 바뀝니다. 스토리보드에서 collectionv view를 선택하고 코드로 끌어와서 아울렛 변수를 생성해줍니다. ..
2021.03.07 -
[iOS] 카메라 연결하기
오늘은 카메라 버튼을 누르면 카메라가 켜지고 사진 앨범에 저장하는 카메라 기능을 구현해 보았습니다! 화면 중앙에 UIImageView를 놓았고, 아랫쪽에는 toolbar를 넣어 카메라 모양의 bar button item을 넣어주었습니다. 버튼 좌측에 flexible space를 넣어 카메라 버튼을 우측으로 보내줬습니다. 이제 카메라 버튼을 누르면 카메라가 뿅 나오도록 코드를 짜보겠습니다. 1. MobileCoreServices 패키지 import하기 MobileCoreServices 는 카메라같이 운영체제에서 제공하는 기능을 사용할 수 있도록 하는 패키지라고 합니다. 따라서 카메라를 사용하기 위해서는 'import MobileCoreServices' 를 해줘야 합니다! 2. UIImagePickerCon..
2021.01.21 -
[iOS] Custom TableView 만들기
TableView란? ios에서 아래로 내리면서 볼 수 있는 목록을 만들 때 사용하는 것이 TableView입니다. 안드로이드의 RecyclerView와 비슷한 개념인 것 같습니다. 목록을 이루고 있는 반복되는 요소를 cell 이라고 하는데, 목록을 스크롤하면 화면에서 사라진 cell들이 재사용되어 화면에 다시 나타나게 됩니다. 셀은 사용자가 커스텀해서 원하는 모양으로 만들어 사용할 수 있습니다. 커스텀 셀을 가진 테이블뷰를 만들어보도록 하겠습니다:) 1. Storyboard 에 TableView 만들기 단축키 shift + cmd + L 을 눌러 TableView를 가져와 목록을 만들고 싶은 ViewController위에 놓습니다. TableView를 선택하면 우측의 Attributes Inspecto..
2021.01.18 -
[iOS - Error] setValue:forUndefinedKey 에러
[setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key ~ 찾아보니 코드에서 연결을 인식하지 못해서 발생하는 에러라고 했다. 하지만 지웠다가 다시 연결해봐도 계속 같은 에러가 났다. 에러가 발생하지 않은 페이지와 비교해보니 다른 점이 하나 있었다. 여기 Module 부분이 비어 있었는데 이 부분을 채워주니 에러 없이 잘 실행되었다.
2021.01.18