๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿงฏ Troubleshooting

[Cheliz] UITableView ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ

 

  ๋ฌธ์ œ  

UITableView์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ cell์„ ํƒญํ•˜๋ฉด cell์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปฌ๋Ÿฌ๊ฐ€ ์ง™์€ ํšŒ์ƒ‰์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค. ์†๊ฐ€๋ฝ์„ ๋–ผ๋”๋ผ๋„ ํšŒ์ƒ‰์œผ๋กœ ์œ ์ง€๋œ๋‹ค. ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•œ ์„ค์ •ํ™”๋ฉด์˜ ๊ฒฝ์šฐ, ์…€์˜ ์„ ํƒ ์—ฌ๋ถ€๋ฅผ ๊ธฐ์–ตํ•  ํ•„์š” ์—†์ด ์œ ์ €๊ฐ€ ‘๋ฒ„ํŠผ์ด ์ž˜ ๋ˆŒ๋ ธ๋‹ค’๋ผ๋Š” ๊ฒƒ๋งŒ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.

 

๋จผ์ € ์œ ์ €๊ฐ€ ์†๊ฐ€๋ฝ์„ ๋—์„ ๋•Œ ๊ธฐ์กด ์ปฌ๋Ÿฌ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋„๋ก ํ•˜์—ฌ ‘๋ˆŒ๋ €๊ณ , ๋—๋‹ค’๋ผ๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค.

 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
	tableView.deselectRow(at: indexPath, animated: true)
}

์œ„์ฒ˜๋Ÿผ UITableViewDelegate์˜ didSelectRowAt ๋ฉ”์„œ๋“œ์—์„œ ํ•ด๋‹น row๋ฅผ ๋ฐ”๋กœ deselectํ•ด์„œ ์ธ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ–ˆ๋‹ค!

 

 

 

 

ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์ง™์€ ํšŒ์ƒ‰์˜ ์ปฌ๋Ÿฌ๋Š” ์•ฑ์˜ ์ „๋ฐ˜์ ์ธ ๋ฌด๋“œ์™€ ๋งž์ง€ ์•Š์•„ ์œ ์ €์—๊ฒŒ ์ด์งˆ๊ฐ์„ ๋ถˆ๋Ÿฌ ์ผ์œผ์ผฐ๋‹ค..

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์…€์„ ์„ ํƒํ–ˆ์„ ๋•Œ์˜ ์ปฌ๋Ÿฌ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ–ˆ๋‹ค.. .

 

 

 

 

 

  Table View์—์„œ Selectํ•œ Row์˜ backgroundColor ๋ฐ”๊พธ๊ธฐ  

 

 

 

UITableViewCell์˜ selectedBackgroundView ํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉํ•ด, ๋ˆ„๋ฅผ ๋•Œ๋งŒ ์…€์˜ backgroundColor๊ฐ€ ๋ฐ”๋€Œ๋„๋ก ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

UIView() ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ๋ทฐ์˜ backgroundColor๋ฅผ ์ง€์ • ํ›„, cell์˜ selectedBackgroundViewํ”„๋กœํผํ‹ฐ๋ฅผ ํ•ด๋‹น ๋ทฐ๋กœ ์„ค์ •ํ–ˆ๋‹ค.

 

 

 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: BackupFileTableViewCell.reuseIdentifier, for: indexPath) as? BackupFileTableViewCell else {
        print("Cannot find BackupFileTableViewCell")
        return UITableViewCell()
    }
    
    let backgroundView = UIView()
    backgroundView.backgroundColor = .selectedBackgroundColor
    cell.selectedBackgroundView = backgroundView
    
    cell.fileNameLabel.text = backupFileNames[indexPath.row]
    
    return cell
}

์…€์˜ ํ”„๋กœํผํ‹ฐ์— UIView๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ ์…€๋งˆ๋‹ค ๋‹ค๋ฅธ UIView ์ธ์Šคํ„ด์Šค๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฅผ ํ™œ์šฉํ•ด์„œ ์‹œ๊ฐ์ ์œผ๋กœ ๋”์šฑ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜์ž๋ฉด, ํ˜„์žฌ ํ™”๋ฉด์˜ ๊ฒฝ์šฐ ๋ฐฐ๊ฒฝ์ƒ‰์ด ๋‹จ์ผ์ƒ‰์ด ์•„๋‹ˆ๋ฏ€๋กœ, ๊ฐ ์…€์ด ์„ ํƒ๋˜์—ˆ์„ ๋•Œ ๋ฐฐ๊ฒฝํ™”๋ฉด๊ณผ ์œ ์‚ฌํ•œ ์ปฌ๋Ÿฌ๋ฅผ ๋„๋„๋ก ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

ํ•˜์ง€๋งŒ ํ…Œ์ด๋ธ” ๋ทฐ๊ฐ€ ๊ธธ์–ด์ง€๊ณ , ์Šคํฌ๋กค์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์˜คํžˆ๋ ค ๋” ๋ณต์žกํ•œ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.. ๐Ÿซ