본문 바로가기

Tech/iOS

[iOS] Day 15 - TableView 상에서 Switch 구현

728x90

일주일을 일요일 마다 세는 성격이라

일요일이 항상 힘들었는데 

오늘 느낀 감정은

주말에 잠으로 풀충전해서 그런지

월요병 보다는 월요통이다..

오늘도 달려보자


TabelView 상에서 Switch 구현

 

Storyboard에서 구현하면 되는거 아니야?

구현하려다 안됐다

-> 나중에 안 사실이지만 style을 custom으로 바꾸면 됐다

역시 거의 다 구현하구나 storyboard...

 

storyboard 구현이 안되길래 코드에 구현해보았다

 



storyboard상에서의 완성된 화면이다 (tableView는 다 배운 후 2~3번 정도 걸쳐 포스팅 할 예정이다)

2번째 섹션에만 Switch를 구현하고 싶다 

어떻게 해야할까?

 

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "AttensionMode")!

        if indexPath.section == 0 {
            cell.textLabel?.text = modeArray[indexPath.row]
            cell.textLabel?.textColor = .white
            cell.textLabel?.font = .systemFont(ofSize: 15)
        }
        //스위치가 들어갈 섹션 1번
        else if indexPath.section == 1 {
            cell.textLabel?.text = shareArray[indexPath.row]
            cell.textLabel?.textColor = .white
            cell.textLabel?.font = .systemFont(ofSize: 15)
            
			//UISwitch 호출
            let switchView = UISwitch(frame: .zero)
            // switch 초기화면 버튼이 누르지 않은 채로
            switchView.setOn(false, animated: true)
            //swtichView tag 지정
            switchView.tag = indexPath.row
            //switchView addTarget 지정
            switchView.addTarget(self, action: #selector(self.switchDidChange(_:)), for: .valueChanged)
            //cell accessoryView를 switchView로 지정
            cell.accessoryView = switchView
            
        }
        
        return cell
    }
    
    //switch 버튼을 눌렀을 때 상태가 바뀔때마다 터미널에서 확인 작업
     @objc func switchDidChange(_ sender: UISwitch) {
        print("sender is \(sender.tag)")
    }

섹션 1번에만 Switch를 주었다 if 구문 밖에 설정할 경우 섹션 0번과 1번에 있는 모든 셀에 switch 기능이 추가된다

 

+ 추가

 

Storyboard에서는 style을 Custom으로 변경 후에 Library에서 Switch를 넣고 싶은 섹션에 추가 해주자

'Tech > iOS' 카테고리의 다른 글

[iOS] Day 16 - TableView(2)  (0) 2022.07.19
[iOS] Day 16 - TableView(1)  (0) 2022.07.19
[iOS] Day 14 - Extension  (0) 2022.07.17
[iOS] Day13 - ViewController 생명주기  (0) 2022.07.16
[iOS] Day 12 - UserDefaults  (0) 2022.07.15