모바일앱199 원피스 현상금 랭킹앱 만들기(5) - 디테일뷰 모달로 띄우기 이제 새로운 페이지를 만들어보자 DetailViewController로 새롭게 생성 메인으로 들어가서 새롭게 뷰컨트롤러를 생성한다. 이제 스토리보드에서 새로 만든 뷰컨트롤러를 우리가 만든 DetailViewController로 연결을 시켜주자 왼쪽 빨간색으로 표시한 버튼을 누르고 우측 빨간색 내용처럼 class이름을 DetailViewController로 수정한다. 어시스턴트를 켠다. close 버튼을 넣기 위해 UIbutton삽입 UIbutton을 누르고 우측에서 image부분을 누르면 내가 폴더에 넣어둔 이미지들을 볼수 있습니다. 그리고 바로 오토레이아웃 적용 UIbutton을 View로 드래그 해서 상단과 우측을 선택 Top 을 20 Trailling을 16으로 설정하고 가로 세로를 각각 50으로 .. 2021. 11. 4. 원피스 현상금 랭킹앱 만들기(4) - 커스텀셀 보통 셀은 커스터마이징 한 것을 사용한다. 커스텀셀을 생성하기위해 먼저 BountyViewController에서 하단에 클래스로 생성한다. 이 클래스는 ListCell 로 명명하고 UITableViewCell을 상속받아 사용한다. 안에 이미지뷰가 있어야 하고 각각 이름과 현상금이 입력될 UILabel이 필요하다. class ListCell: UITableViewCell { @IBOutlet weak var imgView: UIImageView! @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var bountyLabel: UILabel! } 그리고 해당 셀을 누른 상태에서 우측에 Inspector의 Class를 같은 이름으로 지정해준다. 그러면 연결 이제 .. 2021. 11. 3. 원피스 현상금 랭킹앱 만들기(3) - 테이블뷰 프로토콜 테이블 뷰를 쓰는 이유는? 여러 아이템을 리스트형태로 보여주기 위해 사용한다. 테이블뷰가 질문함? 리스트를 표현하려고 할때 테이블 뷰를 뷰컨트롤러에 추가했다. 그리고 실제로 사용하려하면 테이블뷰가 데이터를 보여주기전에 질문을 한다. - 테이블뷰 셀 몇개? - 테이블뷰 어떻게 보여줄까? (어떤 셀을 이용해서 보여줄건지) - 테이블뷰 클릭하면 어떡해? (어떻게 반응할건가) - etc 이밖에도 다양한 상황에서 다양한 반응이 있다. 그에따라 질문이 많아질 수 있다. 모두 답할필요는 없지만 위에 2개(셀몇개, 어떻게 보여줄지)는 답을 해줘야한다. UI테이블뷰를 사용하기위해서 이렇게 답해줘야한다. 테이블뷰를 리스트로 보여주는 서비스를 이용해서 해야할 일들이다. 해야할일들을 한다는 것이 Protocol이다. http.. 2021. 10. 31. 원피스 현상금 랭킹앱 만들기(2) - 테이블뷰 참고 블로그 더보기 참고 : https://velog.io/@hayeon/%EC%9B%90%ED%94%BC%EC%8A%A4-%ED%98%84%EC%83%81%EA%B8%88-%EB%9E%AD%ED%82%B9-%EC%95%B1 1. 테이블 뷰 UITableView : iOS 앱 개발에서 여러 아이템을 나열해서 리스트 형태로 보여줄 때 사용 colum 한개 데이터들을 여러 행에 걸쳐서 표현 각 데이터들은 "테이블 뷰 셀"에 의해서 표현 Recycle cell : 화면에서 보여주는 개수는 한계 때문 Protocol : 어떤 서비스를 이용하기 위해서 해야할 일들의 목록 1.1 ) 테이블뷰 서비스를 쓰기 위해 해야 할 일 테이블뷰 셀 몇개? 테이블 뷰 어떻게 보여줄까? 테이블 뷰 클릭하면 어떡해? 테이블뷰를 만들.. 2021. 10. 27. 원피스 현상금 랭킹앱 만들기(1) - 테이블뷰 기초개념 이번 목표는 원피스 현상금 랭킹앱을 만들면서 테이블뷰에 대한 기초 개념을 익히는 것이다. 구현 목표는 아래와 같다. 구현목표 화면은 크게 2개로 구성되어있고 각 셀을 클릭했을 때, 자세한 내용을 표시해주는 페이지를 모달로 구현한다. 모달 : 아래에서 위로 올라오는 스타일의 뷰 전환 방식 여러 아이템을 리스트로 보여주는 것이 주요 학습목표이다. 여러 앱에서 볼수 있는 리스트형식 리스트 UITableView 아이템을 나열해서 보여주는 방식 각 데이터들은 테이블 뷰 셀을 가지고 있다. 테이블 뷰 셀은 다양하게 표현가능한데 시스템상의 기본 셀 뿐만아니라 커스텀해서 사용하기도 한다. 대부분은 커스터마이징해서 사용 Recycle cell 테이블 뷰는 셀을 재활용 해서 보여준다. 우리가 100개의 데이터를 보여준다고.. 2021. 10. 21. 생성자 이해하기, 2-phase Initialization, Convenience Initializer Initializer (생성자) 앞선 강의에서 Inheritance(상속)에 대해서 공부했다. 상속받은 클래스들을 생성할때 기본 생성자를 가지고 만드는데 부모자식간의 모양이 비슷한 것을 알 수 있다. 하지만 자식 클래스는 부모와 다르게 만들 수도 있다. import UIKit // 처음 코드 struct Grade { var letter: Character var points: Double var credits: Double } class Person { var firstName: String var lastName: String init(firstName: String, lastName: String) { self.firstName = firstName self.lastName = lastName } .. 2021. 10. 20. 클래스상속은 언제 하면 좋을까? 개발철학에 따라 다르다고 할 수 있다. 상속은 중복된 코드를 제거할 수 있는 기회가 있다. 하지만 상속이 잦아지면 상속의 깊이가 깊어져서 유지보수가 어려워질 수 있다. 사실 경험에서 나온다. 1. Single Responsibility 단일책임 ; 클래스가 한가지 점만 취급하는가? 2. Type Safety 타입이 분명해야할 때 ; 부모 혹은 다른 자식의 클래스를 명확하게 표현해야하는가? 3. Shared Based Classes 다자녀가 있다 ; 기본동작에 대해서 다양하게 구현해야하는가? 4. Extensibility 확장성이 필요한 경우; 외부앱에서 사용되어야 하는가? , 확장성이 필요한가? 5. Identity 정체를 파악하기 위해 ; 객체 자체의 정체성을 구분하고 싶은가? 1. 각 클래스는 한개의.. 2021. 10. 19. 상속 개념을 코드로 익히기 기본적인 형태 class Parent class Child : Parent Person : Super Class Student: Sub Class (Child Class) 아래 코드를 보자 Person과 Student라는 클래스가 두개 있다. 자세히보면 같은 내용의 코드들이 중복되어있는 것을 알수있다. 이럴때 상속이라는 개념을 적용할 수 있다. struct Grade { var letter: Character var points: Double var credits: Double } class Person { var firstName: String var lastName: String init(firstName: String, lastName: String) { self.firstName = firstNa.. 2021. 10. 18. 클래스, 언제 클래스? 언제 스트럭트? 클래스 개념 클래스는 스트럭쳐 처럼 관계가 있는 것들을 묶어서 표현한다. Object = Data + Method Objects는 클래스와 스트럭쳐 형태로 만들 수 있다. 하지만 두가지의 차이점은 실제 동작에서 차이가 있다. 생성되는 인스턴스가 할당되는 메모리의 차이가 있다. Structure는 Stack이라는 공간에 생성된다. Class는 Heap이라는 공간에 생성된다. Stack Heap은 다른 속성을 갖고 있는 메모리 공간이다. Stack 시스템에서 당장 실행해야하거나 타이트하게 컨트롤 및 매니징 해야하는 경우 함수를 생성 , 처리후 리턴하고 해당 변수도 스택에서 제거가 되나. 효율적이고 빠르다. Heap 시스템에서 클래스 같은 레퍼런스타입을 저장하는 데 사용된다. 큰 메모리 풀을 가지고 있어서 시.. 2021. 10. 16. 메소드 개념 ( + extension) Method 는 function과 마찬가지로 기능을 담당한다. 스트럭트와 관련 된 메소드 1. 스트럭트 생성, 함수생성, 인스턴스 생성 //스트럭트 생성 struct Lecture { var title: String var maxStudent: Int = 10 var numOfRegistered = 0 } //인스턴스 생성 var lec = Lecture(title: "iOS Basic") func remainSeats(of lec: Lecture) -> Int{ let remainSeats = lec.maxStudent - lec.numOfRegistered return remainSeats } remainSeats(of: lec) //10 2. 관계된 함수를 만들고 스트럭트에 메서드로 구현하기 오브젝.. 2021. 10. 14. 이전 1 ··· 13 14 15 16 17 18 19 20 다음