ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3월 1주차 회고
    TIL/2021 2021. 3. 8. 02:18

    TIL을 안 적은 지 한참이 흘렀다..ㅠㅠ 

    매일 TIL을 적어 포스팅하는 것보다 한 주동안 배운 것을 꾸준히 작성 후 마지막 날에 한 번에 포스팅하는 방식으로 바꿔보려 한다.

     

    프로젝트

     

    Scroll View

    생각보다 자주 사용하게 되는 ScrollView 많이 만들다 보니 쉽게 만들게 됐는데

    이번에 다시 한번 만들어보며 이거였나..? 헷갈려서 조만간 간단하게 포스팅을 올려 미래의 까먹을 나에게 남겨놔야겠다.

    간단한 순서는

    • 원하는 크기로 맞추고
    • 이때 빨간 줄이 뜨는 이유는 Content Layout Guide의 크기를 몰라서!
    • View 추가하고 이름을 Content View로 하고 leading, trailing, top, bottom 제약을 ScrollView에 맞추고
    • 좌우 스크롤 안되게 -> ScrollView와 equal width, 위아래 스크롤 안되게 -> ScrollView와 equal height
    • 내용을 ContentView에 넣고 제약을 넣어주면 완성

     

    끝!

     

     

     

    TextView dynamic size

     

    게시판의 본문 작성 등 작성한 내용만큼 textView의 크기를 조절시키고 싶었는데 어떻게 하지...?

    사실 아주 간단했다.

    이 설정을 빼면 끝!

     

     

    ScrollView에 tableView dynamic size 적용

     

    ScrollView에 tableView를 추가하는데 cell의 개수에 따라 크기가 달라지는데 이걸 해결해야 했다.

    위에 textView처럼 설정하나만 바꿔주면 해결됐으면 좋겠지만 그렇지는 않았다.

    위처럼 Scrolling을 막으니 그냥 스크롤이 안될 뿐 크기가 증가하지 않았다.

     

    공부해보니 여러 가지 해결방법이 있었지만 쉬운 방법은

    • 먼저 tableView의 height를 정하고 constraint를 outlet으로 연결한다.
    • viewWillLayoutSubviews 메서드에서 tableView.contentSize.height를 이용

     

     

    이렇게 하면!!

    완성!

    단점은 outlet으로 constraint와 tableView를 연결해야 하는 단점이 생긴다.

    또 viewDidLoad에서 이 코드를 작성하면 안 된다.

     

     

    TableViewCell의 기본 inset 없애기

     

    Cell의 기본 inset은 leading에 들어가 있다고 한다. 위 Cell을 보아도 좌측의 inset이 더 큰 것을 확인할 수 있다.

    Inspector에서 아무리 찾아봐도 없어서 코드로 수정을 했어야 했다.

     

    이렇게 하면 옮겨간다.

     

     

    완성!

     

     


     

    RxSwift

     

    Cocoapods

     

    오픈소스를 보다 보면 아니면 iOS를 공부하다 보면 꼭 나오는 cocoapods 사용할 일이 없었지만 이제 프로젝트를 진행하며 오픈소스를 사용하거나 Rx를 사용할 때 필수!!

     

    • 설치는 터미널을 열고 $ sudo gem install cocoapods
    • 프로젝트가 있는 폴더를 터미널로 연다.
    • 터미널에서 pod init을 하면 podfile이 생성
    • 원하는 라이브러리 입력 후 저장 ex) pod 'RxSwift' 
    • 터미널에서 pod install하면 workspace가 생성

    이제부터 프로젝트를 열 때 workspace를 실행하면 된다.

     

    target이 여러 개라면 target에 모두 입력해야 하는데 이렇게 shared_pods를 생성하고 pod shared_pods만 해주면 모두 다 입력하는 수고를 덜 수 있다.

    def shared_pods
        pod 'RxSwift'
        pod 'RxCocoa'
    end

     

     

     

    Observable, Observar, Subject

     

    Rx를 공부하며 가장 중요한 개념인 Observable, Observar에 대해서 공부했다.

    Emit, Subscribe의 개념을 이해하고 map, filter등 여러 메서드를 이용하여 구현하는 방법을 공부했다.

     

    Rx를 이용하면 이전에 delegate를 이용하여 NSString으로 변환 후 구현해야 하는 것을 이렇게 쉽게 할 수 있었다.

     

     

     

     

     

     

    728x90

    'TIL > 2021' 카테고리의 다른 글

    210419 - TIL  (0) 2021.04.20
    210416 - TIL  (0) 2021.04.16
    210207 - TIL  (0) 2021.02.08
    210204 - TIL  (0) 2021.02.05
    210201 - TIL  (0) 2021.02.02
Designed by Tistory.