250403 iOS프로그래밍실무 5주차

2025. 4. 3. 16:47·iOS프로그래밍실무 (3학년 1학기)

Delegate나 DataSource를 사용하는 UI 컴포넌트

스위프트 상속과 프로토콜 채택

  • class 자식:부모 {
    }
    • 부모 클래스는 하나만 가능하며 여러 개라면 나머지는 프로토콜
  • class 클래스명:부모명, 프로토콜명{}
    • 부모가 있으면 부모 다음에 표기
  • class 클래스명:부모명, 프로토콜명1,프로토콜명2 {}
  • class 클래스명:프로토콜명{}
    • 부모가 없으면 바로 표기 가능
  • class 클래스명:프로토콜명1, 프로토콜명2{}
  • 클래스, 구조체, 열거형, extension에 프로토콜을 채택(adopt)할 수 있다.
    • 상속은 클래스만 가능

TableView의 DataSource : UITableViewDataSource프로토콜

필수 메서드 2개

// Return the number of rows for the table.
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
} // 특정 섹션에 표시할 행의 개수
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Fetch a cell of the appropriate type.
let cell = tableView.dequeueReusableCell(withIdentifier: "cellTypeIdentifier", for: indexPath)
// Configure the cell’s contents.
cell.textLabel!.text = "Cell text"
return cell
} //특정 위치의 셀을 리턴

UITableViewDataSource프로토콜 : 선택적 메서드

  • numberOfSections(in:)
    테이블 뷰에 섹션 수 지정
  • tableView(_:titleForHeaderInSection:)
    각 섹션의 헤더에 표시될 텍스트 지정
  • tableView(_:titleForFooterInSection:)
    각 섹션의 푸터에 표시될 텍스트 지정
  • tableView(_:canEditRowAt:)
    셀을 삭제하거나 추가할 때
  • tableView(_:canMoveRowAt:)
    셀의 순서를 변경할 때

오늘 공부할 것 : UIViewTableView / UIViewTableViewCell

다음 코드에 오류가 뜨는 이유와 수정방법

 

과제 : 다음과 같이 변경해서 스크린샷

  • section수:3, row수:5, UITableViewCell.CellStyle:subtitle,value1,value2
  • detailTextLabel에 indexPath.description(section)출력

 

애플에서 제공하는 4개의 셀 디자인이 마음에 들지 않을 때 UITableViewCell을 추가

cell을 직접 만들 경우 identifier 필요: myCell

  • dequeueReusableCell메서드에서 사용할 cell ID 지정

Cell을 관리할 swift파일 만들기 : Cocoa Touch Class선택

  • [Swift File]선택하는 것보다 부모를 선택할 수 있어서 좋음

myCell과 관리할 클래스(myTableViewCell) 연결

  • Identity inspector의 class부분 콤보 박스 아래쪽 방향 화살표 누려면 MyTableViewCell 선택 가능
  • 주의 : 초보자들이 연결 안하는 실수 많이 함

적용된 두개의 Constraints 확인 (위쪽 : Label의 제약 / 아래쪽 : TableView의 제약)

원하는 파일이 아닐 경우 Automatic에서 변경

  • MyTableViewCell.swift파일이 나오는 것이 정상인데, ViewController.swift 파일이 나올 경우 다음과 같이 변경

리턴형이 UITableViewCell이기 때문에 cell.myLabel으로 입력할 수 없다.

최종

참고자료 : 한성현 교수님 수업자료

저작자표시 (새창열림)

'iOS프로그래밍실무 (3학년 1학기)' 카테고리의 다른 글

250417 iOS프로그래밍실무 7주차  (0) 2025.04.17
240410 iOS프로그래밍실무 6주차  (0) 2025.04.10
250327 iOS프로그래밍실무 4주차  (0) 2025.04.02
250320 iOS프로그래밍실무 3주차  (0) 2025.03.20
250313 iOS프로그래밍실무 2주차  (0) 2025.03.19
'iOS프로그래밍실무 (3학년 1학기)' 카테고리의 다른 글
  • 250417 iOS프로그래밍실무 7주차
  • 240410 iOS프로그래밍실무 6주차
  • 250327 iOS프로그래밍실무 4주차
  • 250320 iOS프로그래밍실무 3주차
Z2AE
Z2AE
  • Z2AE
    딩코.log
    Z2AE
  • 전체
    오늘
    어제
    • 분류 전체보기 (66) N
      • C++ 프로그래밍 (1학년 2학기) (12)
      • 서버프로그래밍 (1학년 2학기) (0)
      • C# 프로그래밍 (1학년 2학기) (2)
      • 프론트엔드 웹개발 (1학년 2학기) (2)
      • 데이터베이스 (2학년 1학기) (8)
      • 자료구조 (2학년 1학기) (2)
      • JAVA프로그래밍 (2학년 1학기) (7)
      • PHP쇼핑몰실무 (2학년 1학기) (2)
      • 운영체제 (2학년 1학기) (3)
      • 모바일게임개발 (2학년 1학기) (1)
      • iOS프로그래밍 (2학년 2학기) (11)
      • 네트워크보안 (2학년 2학기) (1)
      • iOS프로그래밍실무 (3학년 1학기) (10) N
      • 소프트웨어설계 (3학년 1학기) (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Z2AE
250403 iOS프로그래밍실무 5주차
상단으로

티스토리툴바