RDBMS DB -> 데이터를 저장한 파일들의 집합체 DBMS -> DB를 관리하는 소프트웨어 RDBMS -> 관계형 데이터베이스를 관리하는 소프트웨어 -> 테이블 형태로 데이터 저장 구조 Schema -> 데이터베이스의 구조와 데이터들이 갖는 제약 조건에 관해 전반적 명세를 기술한 것 데이터의 집합인 테이블들이 모여서 스키마를 이루는 것 같음 Table -> Row, Column으로 이루어진 데이터 집합 Column -> 테이블에서 세로로 묶은 데이턴데, 데이터 타입을 지정할 수 있음. Record -> 한 객체에 대한 정보를 갖고있는 데이터. 즉, 하나의 데이터를 의미하는 듯. Table의 제약 조건 Primary Key -> 테이블에 한 개만 생성가능한 테이블 고유 식별 값. -> 데이터가 중복될 ..
컬렉션뷰 코드로 구현 똑같이 커스텀뷰에 인스턴스 생성 이때 UICollectionView를 초기화할땐 frame과 collectionViewLayout의 값이 반드시 있어야함. -> 런타임 에러 발생 커스텀뷰를 만드는 것처럼 똑같이 만들어줌. 뷰컨트롤러에서 셀을 등록해주면 끝. -> 나머지는 똑같이 프로토콜 채택 후 구현. CollectionViewCell Selection 효과 프로퍼티 옵저버를 사용했음. didSet은 isSelected의 값이 바뀐 직후 실행됨. -> 값이 true로 바뀌었을때 테두리 색이 white로 바뀌는 것 didSelect메서드가 구현되어 있지 않아도 셀을 선택하면 isSelected값이 바뀌나봄. 테이블뷰 코드로 구현 컬렉션뷰와 init구문빼고는 똑같음. 인스턴스 생성 커스..
코드로 UI rootViewController 코드로 뷰컨트롤러를 구성했어도 동일하게 SceneDelegate에서 설정하면됨. TextView Inset 텍스트뷰에서 inset을 주고싶을땐 아래와 같이 작성. Init 커스텀 텍스트뷰 클래스를 만들때 UIView와 다르게 textContainer까지 있는 init을 사용. 키보드 안나오게 하기 내가 구현하는 화면이 텍스트뷰를 눌렀을때 작성하는 화면으로 넘어가는 형식이라 키보드를 안나오게해야했음. inputView를 UIView()로 하면됨. nil로 했을땐 효과없었음. 코드로 TapGesture구현 하나의 탭 제스쳐는 하나의 객체에서만 사용할 수 있음. 다이어리 프로젝트 내용 적는 textView를 눌렀을때 새로운 뷰를 띄워서 더 많은 텍스트뷰를 보여줄 ..
기존에는 내 위치(위치 권한 허용)와 새싹 캠퍼스 위치(위치 권한 허용X)의 날씨만 받아올 수 있었다. MapView를 이용해서 지정한 위치의 날씨를 받아오는 기능도 있으면 좋을 것 같아 추가해보았다. 먼저, + 버튼을 눌렀을 때 현재 위치를 Annotation을 이용해 표시한 MapView를 띄워주도록 하였다. MapView에서 위치를 바꿀 때마다 Annotation으로 현재 센터 표시를 하고 좌표를 구해주었다. 날씨 알아보기 버튼을 눌렀을 때, 클로저를 이용해 값을 전달하여 날씨를 구하고 레이블에 표시해주었다. +옆의 위치 버튼을 누르면 다시 현재 위치의 날씨를 표시해주도록 하였다. 클로저를 이용한 값 전달 코드 데이터를 전달하는 맵뷰 컨트롤러에서 locationHandler를 선언 후, 날씨 알아보..
BaseViewController 여러 뷰컨트롤러에서 공통적으로 작성되는 코드를 구조화. 기존에는 하나의 뷰컨트롤러마다 공통되는 코드라도 매번 반복해서 작성. 아래처럼 BaseViewController내에 작성한 뒤, BaseViewController의 viewDidLoad에서 호출하면 상속받는 뷰컨에서 따로 호출할 필요 없음. 상속받는 뷰컨트롤러에서는 액션에 대한 제어만 할 수 있도록 해줌. BaseView 뷰도 뷰컨트롤러와 마찬가지로 BaseView 클래스를 따로 만들어줘서 상속받는 View를 만들어서 루트뷰로 설정하면 구조화가능. 오른쪽 사진에서 볼 수 있듯이 상속받은 뷰 클래스에서 프로터티 선언, UI설정 등을 함. 단, 뷰컨트롤러에서 루트뷰로 설정할 때 loadView메서드에서 해야함. -> v..
- Total
- Today
- Yesterday