일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- algorithm
- Widget
- Swift
- designPattern
- ToDoRim
- UIAccessibility
- GIT
- enumerations
- dart
- OSLog
- IOS
- pubspec
- xcode
- keyWindow
- basic
- toyproject
- flutter
- protocol
- pubspec.yaml
- reetcode
- SwiftGen
- Extentsion
- it
- listview
- Equatable
- github
- Leetcode
- swiftlint
- COMMIT
- tip
- Today
- Total
수니의 개발새발
[iOS/Swift] xib로 TableView 만들기 (TableViewCell Select Highlight) 본문
[iOS/Swift] xib로 TableView 만들기 (TableViewCell Select Highlight)
개발자 수니 2021. 12. 28. 18:05📌 이번 글은
xib로 간단한 TableView를 만드는 방법입니다.
첨부 이미지는 Storyboard intreface기반 Swift 프로젝트입니다.
1. Storyboard에 Table View 추가/설정
프로젝트 생성 후 Main.storyboard > View Controller에 TableView를 추가합니다.
Table View의 AutoLayout을 설정합니다.
Table View의 delegate, dataSource를 설정합니다.
2. UITableViewCell 클래스 생성
New File -> iOS > Cocoa Touch Class를 클릭합니다.
Subclass of > UITableViewCell로 설정하고, Class 명을 원하는 명으로 바꾼 뒤, Also create XIB file을 체크하고 Next를 클릭합니다.
이와 같이 cell.swift 파일과 cell.xib 파일이 생성되어야 합니다.
3. xib에서 Cell 설정
FruitCell.xib > cell을 원하는 UI로 커스텀합니다.
FruitCell 선택 > identifier에 cell의 클래스명을 입력합니다.
4. FruitCell.swift
@IBOutlet weak var thumbnail: UIImageView!
@IBOutlet weak var lblName: UILabel!
@IBOutlet weak var lblInfo: UILabel!
5. ViewController.swift
@IBOutlet weak var tableView: UITableView!
var arrImageName: [String] = ["image1","image2","image3","image4","image5","image6","image7","image8","image9","image10"]
var arrFruitName: [String] = ["Apples","Apricots","Aubergines","Avocados","Bananas","Butternut squash","Cherries","Clementines","Dates","Elderberries"]
var arrFruitInfo: [String] = ["Granny Smith, Royal Gala, Golden Delicious and Pink Lady are just a few of the thousands of kinds of apple that are grown around the world.","Apricots can be eaten fresh or dried – both are packed with vitamins. ","Most aubergines are teardrop-shaped and have glossy purple skin.","Sometimes called an avocado pear, this fruit is often mistakenly described as a vegetable because we eat it in salads.","A great snack in a handy yellow skin!","Butternut squash is a large and pear-shaped fruit with a golden-brown to yellow skin.","Cherries grow from stalks in pairs and a tree can produce fruit for as long as 100 years!","This citrus fruit is the smallest of the tangerines.","These fruits come from the date palm tree and grow abundantly in Egypt.","These little, almost black berries grow on bushes all over the UK countryside in summer."]
ViewController.swift > tableView와 tableView에 뿌려줄 데이터 배열을 선언합니다.
override func viewDidLoad() {
super.viewDidLoad()
// TableView에 Cell 등록
let nibName = UINib(nibName: "FruitCell", bundle: nil)
tableView.register(nibName, forCellReuseIdentifier: "FruitCell")
}
ViewController.swift > viewDidLoad()에 위와 같이 Table View에 Cell을 등록합니다.
extension ViewController: UITableViewDelegate, UITableViewDataSource {
// TableView item 개수
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrImageName.count
}
// TableView Cell의 Object
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "FruitCell", for: indexPath) as! FruitCell
cell.thumbnail.image = UIImage(named: arrImageName[indexPath.row])
cell.lblName.text = arrFruitName[indexPath.row]
cell.lblInfo.text = arrFruitInfo[indexPath.row]
return cell
}
}
ViewController extension을 만들어, UITableViewDelegate, UITableViewDataSource 프로토콜을 선언해, extension 안에 위와 같이 작성합니다.
이제 빌드를 하면 결과를 확인할 수 있습니다. ლ(╹◡╹ლ)
TIP. TableViewCell Select Highlight
Table View Cell의 Default설정은 위와 같이 Cell을 선택하면 하이라이트가 들어갑니다.
하이라이트를 없애는 방법입니다.
Cell.xib > Cell 선택 > Selection을 None으로 선택합니다.
'iOS - Swift' 카테고리의 다른 글
[iOS/Swift] iOS13 에서 라이트모드(또는 다크모드)만 지원하기 (turn off darkmode) (0) | 2021.12.29 |
---|---|
[iOS/Swift] Custom Animation Popup 만들기 (with. Storyboard) (0) | 2021.12.29 |
[iOS/Swift] UIAlertController를 사용하여 Alert 만들기 (0) | 2021.12.29 |
[iOS/Swift] 최상위에 있는 뷰컨트롤러 얻기 (0) | 2021.12.29 |
[iOS/Swift] Grid형태 Image CollectionView만들기 (0) | 2021.12.24 |