관리 메뉴

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

[iOS - swift] 스크롤 될 때 headerView 색상 변경 방법 본문

iOS 응용 (swift)

[iOS - swift] 스크롤 될 때 headerView 색상 변경 방법

jake-kim 2024. 7. 15. 01:46

headerView 색상

  • headerView의 색상 backgroundColor를 아래처럼 clear라고 설정한 상태에서, 스크롤 하여 header가 sticky될때 색상이 자동으로 lightGray색상으로 변함
import UIKit

class HeaderView: UITableViewHeaderFooterView {
    ...
    
    override init(reuseIdentifier: String?) {
        super.init(reuseIdentifier: reuseIdentifier)
        contentView.backgroundColor = .clear // <-
        contentView.addSubview(label)
    }
    
...
}

  • tableView의 스타일 중 디폴트인, plain상태에서는 위처럼 보이고 grouped 상태에서는 아래처럼 backgroundColor에 clear를 사용한것이 적용안됨

tableView의 grouped 스타일

headerView의 tintColor

  • headerView의 배경색상을 지정할때는 contentView.backgroundColor가 아닌, tintColor를 수정해주어야함
import UIKit

class HeaderView: UITableViewHeaderFooterView {
...
    
    override init(reuseIdentifier: String?) {
        super.init(reuseIdentifier: reuseIdentifier)
        tintColor = .white // <-
...
    }
    
...
}

tintColor를 수정해주니, headerView가 sticky될때 지정해준 색상으로 노출

* 전체 코드: https://github.com/JK0369/ExTableViewHeaderView

Comments