Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[220711] TIL #28

Closed
Taehyeon-Kim opened this issue Jul 10, 2022 · 0 comments
Closed

[220711] TIL #28

Taehyeon-Kim opened this issue Jul 10, 2022 · 0 comments
Assignees

Comments

@Taehyeon-Kim
Copy link
Owner

Taehyeon-Kim commented Jul 10, 2022

🪴 Summary

  1. 뷰의 일반적인 속성 값들(Alpha, Opacity, Rendering Mode, Corner Radius, Cilps to bounds, Shadow)
  2. 오토레이아웃 (레이아웃 잡는 연습 진행 중)
  3. 네비게이션 컨트롤러
  4. 탭바 컨트롤러

🗂 Detail

TIL에 너무 많은 리소스를 들이지 맙시다.

1. 폰트 크기

  • 폰트 크기는 보통 바꾸지 않는 편
  • SE와 같이 화면이 작은 디바이스에서는 컨텐츠가 덜 보이도록 놔두는 편

2. Swift Convention

공부를 시작하는 입장에서 처음부터 너무 신경을 쓰는 것은 오히려 주객전도가 될 수 있다. 차근차근 코드를 작성해가다보면 점차 익숙해질 것이다.

3. Build Phases

  • Compile Sources (소스 코드)
  • Copy Bundle Resources (리소스)

4. Alpha vs Opacity

  • Alpha 값을 조정하면, 뷰 안의 하위 요소까지 그 영향을 갖는다.
  • Opacity 값을 조정하면 해당하는 뷰 객체만 불투명도를 조정한다.

5. Image Rendering Mode

  • Original
  • Template

6. Corner Radius, Clips to bounds, Shadow

  • 기본적으로 Corner Radius와 Shadow는 동시에 적용될 수 없다.
  • Corner Radius는 바깥을 깎는 작업이고, Shadow는 바깥의 효과를 살리는 작업이기 때문에 서로 양립할 수 없다.

bro의 말씀 - clipToBounds는 bonds를 벗어나는 영역을 그리지 않는 속성이라는 것을 관점으로 생각해보시면서, 어떤 View에서는 clipToBounds를 적용하지 않아도 코너가 적용이되는데, 어떤 뷰는 clipToBounds를 적용해야지 되는지에 대해서 뷰의 상속관계에 대해서 생각해보시면 좋을 것 같아요.

7. View 객체의 Event

  • Button - Touch Up Inside
  • Switch - Value Changed (On / Off)
  • Slider - Value Changed
  • Text Field - 다양한 이벤트 존재

8. Gesture와 isUserInteractionEnabled

  • isUserInteractionEnabled 속성으로 사용자와의 상호 작용을 막을 수 있다. (스크롤, 버튼 등도 마찬가지)

9. 레이아웃 이모저모

  1. 비율만큼 크기 잡기
  2. 축을 기준으로 비율만큼 이동 시키기
  3. 두 개의 뷰 객체 다루기 (두 개의 뷰 객체를 선택하고 Alignment Constraints를 선택해서도 레이아웃을 다룰 수 있다.)
  4. 유동적인 뷰 처리 시에 StackView를 사용하면 편함
  5. 어떤 뷰를 복사해서 붙여넣기 했을 때 constraint가 일부분만 복사되는 경우 (전체를 가져올 수는 없다. 상대적인 관계의 경우 제외된다.)
  6. 특정 모서리만 CornerRadius를 적용할 수 있다.
  7. ...

10. 뷰 컨트롤러

  • 목적에 따라서 노트 종류를 다르게 쓰는 것처럼, 앱의 화면의 목적에 따라서 다른 뷰 컨트롤러를 사용한다. (비유가 너무 좋다.)
  1. UIViewController
  2. UITableViewController (1열로 구성)
  3. UICollectionViewController (행과 열로 구성, 가로 스크롤 가능, 그리드 형태의 레이아웃 구성)
  4. UIPageViewController
  5. UINavigationController
  6. UITabBarController
  7. UISplitViewController

11. 네비게이션 컨트롤러

  • 드릴 다운 인터페이스
  • 수직적 화면 관리
  • Root - Child의 관계로 구성
  • Push - Pop으로 네비게이션 스택 관리
  • 네비게이션 바에 대한 수정사항은 제약이 크다. 그렇기 때문에 커스텀 하는 상황이 생긴다.
  • Bar Button Item(일반 Button도 넣을 수는 있지만 에러가 발생할 가능성이 있기 때문에 사용하지 않는 것을 권장)
  • Relationship Segue로 RootViewController를 연결할 수 있다.
  • 공통적인 요소는 네비게이션 컨트롤러의 네비게이션 바에서 적용한다.

12. 네비게이션 바

  • iOS 13.0 이전과 이후로 나뉜다.
  • iOS 13.0 이전은 barTintColor로 색을 설정
  • iOS 13.0 이후는 Appearance 속성으로 설정이 가능 (Scroll Edge 속성으로 색이 설정됨)
  • Scoll Edge로 기본적인 네비게이션 바의 색상을 조정하고, 스크롤 되었을 때 바의 색상을 바꾸고 싶다면 Standard 속성을 이용하면 됨
  • Standard = Compact / Scroll Edge = Compact Scoll Edge 는 같은 의미인데 가로 모드일 때 다른 속성을 부여할 수 있다는 특징이 있다.

13. 탭 바 컨트롤러

  • 수평적 화면 관리
  • 공통적인 요소는 탭 바 컨트롤러의 탭 바에서 적용한다.
  • 속성 설정하는 것들은 네비게이션 컨트롤러와 비슷하다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant