본문 바로가기

전체 글

(15)
[ iOS / Swift ] XCode 스토리보드 가로 방향 컬렉션뷰 ( CollectionView ) - 좌우 스크롤 한 줄짜리 좌우로 스크롤이 되는 컬렉션 뷰를 만들다가 나처럼 고생하는 사람이 있을 거 같아서 씀. 이 글은 컬렉션뷰를 만드는 방법에 대한 내용이 아니라 컬렉션뷰를 만들면서 '돼야 하는데 왜 안되지...?'라는 의문들을 해결할만한 요소들에 대해 써봤다.(사실 다 내가 겪은 것들,,,,) 위에 이미지는 내가 만든 컬렉션 뷰 결과물이다. 1. horizontal collectionView 만들기 일단 기본적으로 Scroll Direction을 Horizontal로 바꿔줘야 한다. 좌우 스크롤 컬렉션뷰를 만들기 위해서는 기본이지만 처음 만들어 본다면 모를 수 도 있기 때문에 적어본다. 2. 셀 사이즈 문제 나는 134 * 152 크기의 셀을 가진 컬렉션 뷰를 만들고 싶었다. 그래서 위에처럼 size inspec..
[ iOS / Swift ] XCode 스토리보드 스크롤뷰 구현 ( ScrollView ) 스크롤뷰 넣는 여러 가지 방법이 있는데 스토리보드 이용해서 하는 방법 중 나는 이게 제일 쉬운 방법인 거 같다 1. 스토리보드에서 스크롤뷰를 추가해주고 Safe Area에 상하좌우를 맞춰준다. 이 방법은 화면 전체를 스크롤 뷰로 만드는 방법이라 Safe Area에 맞춰주는 것이다. 화면 전체가 아닌 중간에만 스크롤뷰를 만들고 싶다면 Safe Area 대신 원하는 영역에 맞춰주면 된다. Safe Area에 스크롤뷰가 딱 맞게 하기 위해서 Constant가 0이 아닌 상태라면 모두 0으로 바꿔준다. 원래는 이렇게 Constant가 모두 0이라면 자동으로 뷰가 Safe Area에 맞게 커지지만 지금은 오토레이아웃 경고가 있는 상태라서 드래그를 통해 직접 Safe Area에 딱 맞도록 크기를 맞춰주면 된다. 상..
[ iOS / Swift ] 온보딩(Onboarding) 화면 만들기 - (3) UIPageControl, UIPageViewController 이제 버튼을 추가해서 버튼으로도 화면을 움직이고 마지막 화면인 경우에는 버튼의 텍스트가 바뀌도록 해보겠다 1. 우선 PageControl이 있는 화면에 버튼을 추가해 주고 ViewController에도 연결해 준다. 2. 버튼에 대한 설정을 해준다. - 버튼이 눌렸을 때 페이지가 이동할 수 잇도록 ViewController에 버튼 액션을 연결 - 버튼이 눌리면 PageControl의 현재 페이지를 가져와서 +1 해줘서 다음 페이지 인덱스를 가져오도록 하고 - PageViewController의 페이지를 다음 페이지로 넘겨주고 PageControl의 다음 페이지에 맞게 UI가 바뀌도록 설정해 준다. 여기까지 하면 버튼을 통해 다음 페이지로 넘어갈 수 있게 된다. 이제 마지막 페이지가 되면 버튼의 텍스트가 ..
[ iOS / Swift ] 온보딩(Onboarding) 화면 만들기 - (2) UIPageControl, UIPageViewController 이번에는 페이지컨트롤러가 있는 뷰컨트롤러에서 설정할 것들을 해줄 것이다 1. 뷰컨트롤러에 PageControl 관련 기본 설정을 해준다 - viewDidLoad에 PageControl의 이미지와 색상에 관한 설정 - iboutlet으로 뷰컨트롤러에 PageControl 연결 - 페이지컨트롤의 값이 바뀌면 onboardPageViewController의 페이지가 바뀔 수 있게 onboardPageViewController 변수를 추가 2. 페이지가 바뀌었을 경우 PageControl의 UI를 변경되도록 처리해 주는 함수를 추가해 준다. PageControl의 값이 변경되면 페이지가 이동되고 PageControl의 UI가 변경되도록 설정해 준다. 3. 뷰컨트롤러와 페이지뷰컨트롤러 간에 페이지 컨드롤에 대한 ..
[ iOS / Swift ] XCode 스토리보드 컬렉션뷰 구현 ( CollectionView ) 1. 스토리 보드에 UICollectionView 추가해서 상하좌우 SafeArea 맞춰준다. 2. 스토리보드에 생성된 Collection View 설정에서 만들려는 셀의 크기로 cell size를 설정해준다. 3. estimate size를 auto로 해두면 셀 크기가 맘대로 바뀔 수 있으니 none으로 변경해준다. 4. Collection View Cell의 설정에서도 size를 custom으로 변경하고 셀 크기를 설정해준다. 5. 셀을 구성할 오브젝트들을 추가해준다. 6. Collection View에서 뷰컨트롤으로 dataSource, delegate 를 설정해준다. dataSource, delegat에는 3가지 프로토콜을 구현해준다 UICollectionViewDataSource - 몇개의 셀을..
[ iOS / Swift ] XCode 프로젝트에 폰트(Custom Font) 추가하는 방법 1. 프로젝트의 원하는 위치에 폰트 파일을 추가한다. 드래그&드롭으로 옮기면 편하다 파일을 프로젝트에 추가하면 위와 같은 창이 뜨는데 Add to targets를 체크해 준다. 체크하지 않아도 문제는 없지만 폰트 여러 개를 한 번에 추가하는 경우에는 여기서 체크해 주면 나중에 폰트 파일마다 들어가서 Target Membership 체크를 해주지 않아도 되니까 여기서 해주는 게 편하다. Finish를 누르면 아래와 같이 추가된 것을 볼 수 있다. 2. info.plist에 폰트 정보 추가 info.plist에 Fonts provided by application 프로퍼티를 추가해 준다. Fonts provided by application에 Item을 추가하여 폰트 파일들의 이름을 value에 넣어준다. ..
[ iOS / Swift ] 온보딩(Onboarding) 화면 만들기 - (1) UIPageControl, UIPageViewController UIPageViewController, UIPageControl을 이용해서 위의 화면과 같은 온보딩 화면을 만들려고 한다. 이 온보딩 화면은 3가지 방법으로 페이지 이동이 가능하다. - 스와이프를 이용한 페이지 이동 - 페이지 컨트롤 이용한 페이지 이동 - 다음 버튼을 이용한 페이지 이동 1. 온보딩 화면을 만들 뷰컨트롤러에 Container View를 추가하고 컨테이너뷰를 추가하면서 생긴 뷰 컨트롤러를 삭제해 준다. 컨테이너뷰를 추가하면 왼쪽 사진처럼 컨테이너뷰에 연결된 뷰컨트롤러 하나가 같이 생성된다. 같이 생성된 뷰 컨트롤러를 삭제해 주면 된다. 삭제하고 나면 오른쪽 사진처럼 컨테이너뷰만 남게 된다. 2. UIPageViewController를 추가해 준 후 control을 눌러서 컨테이너뷰에서 페..
[swift] Struct and Class struct와 class는 property와 method로 이루어져 있다. stored property의 경우 didSet, willSet 옵저버를 통해서 값이 변화하는 시점을 알 수 있다. - didSet의 경우 이미 값이 바뀐 상태라 oldValue를 통해 이전 값을 가져올 수 있고 - willSet은 값이 바뀌기 전 상태라 newValue를 통해 바뀔 값을 가져올 수 있다. computed property 해당 변수를 조회할 때 마다 계산되어 리턴해주는 프로퍼티로 get과 set을 이용하여 원하는 대로 설정해줄 수 있다. newValue를 통해서 새로 set 해줄 값을 받아올 수 있다. class의 상속 class Person { var firstName: String var lastNameL St..