개발/Swift

재사용 가능한 tableview cell nib만들기

덤벨로퍼 2021. 9. 2. 18:53

 

tableview cell 을 하나 만들어두고 여려곳에서 쓰기위해

사용하는 tableview 에서 디자인을 구현하지않고

cell 만 따로 빼내서 디자인을 구현 하려한다.

 

디자인은 이렇게 대충 구현해두고

Class명을 지정해준다

 

이렇게 파일은 만들어둔 상태이다.

또 Identifier를 지정해준다. Class명과 꼭 같을 필요는없다.

 

이제 여기 HelpViewController 에서 아까 만들어둔

BoardTableViewCell (xib파일)을 사용할것이다.

그러려면 우선 tableview에 nib을 등록을 해줘야한다.

@IBOutlet weak var faqTableView: UITableView!

private func registerXib() {
        let nibName = UINib(nibName: "BoardTableViewCell", bundle: nil)
        faqTableView.register(nibName, forCellReuseIdentifier: "BoardTableViewCell")
    }

이제 등록은 다 되었고 cellForRowAt 함수에서 BoardTableViewCell을 불러다가 return 해주면 된다.

UITableViewDelegate,UITableViewDataSource 을 상속 받아주고

 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "BoardTableViewCell", for:indexPath) as? BoardTableViewCell else {
            print("BoardTableViewCell nil")
            return UITableViewCell() }
        
        return cell
    }

이렇게 해주면 아까 대충 만든 cell이 viewcontroller 의 tableview에 들어갔음을 확인할수 있다.

같은방식으로 다른 tableview에서 사용이 가능할것이다.