관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] tableView cell 간 간격 설정, cell 선택 UI (contentView.frame.inset, setSelected) 본문

iOS 응용 (swift)

[iOS - swift] tableView cell 간 간격 설정, cell 선택 UI (contentView.frame.inset, setSelected)

jake-kim 2021. 8. 6. 02:34

cell 선택 UI, cell간의 inset

Cell 선택 UI 설정 방법

  • custom cell이 있다면 custom cell의 setSelected(:animated:) 함수에서 사용
    • tableView가 표출될때 초기에는 모든 cell이 선택되지 않은 상태
    • 하나를 선택하면 나머지 cell이 선택되지 않은 상태가 되고 해당 cell 하나만 선택되게끔 내부적으로 동작
// 선택, 미선택에 따라 cell의 테두리 색깔을 다르게 하는 부분

// UITableViewCell을 상속받은 customCell안에서 override

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    if selected {
        contentView.layer.borderWidth = 2
        contentView.layer.borderColor = UIColor.blue.cgColor
    } else {
        contentView.layer.borderWidth = 1
        contentView.layer.borderColor = UIColor.lightGray.cgColor
    }
}

Cell 간 간격 설정

  • Cell에 inset주는 방법
    • layoutSubviews메소드안에서, contentView.frame을 재설정하는데, 기존 frame에 inset값을 더한 값으로 재설정
// UITableViewCell을 상속받은 custom cell에서 layoutSubviews메소드 override

override func layoutSubviews() {
    super.layoutSubviews()

    contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top: 16.0, left: 16, bottom: 16, right: 16))
}

 

* 전체 source code: https://github.com/JK0369/TableViewCellExample

Comments