I fixed the return type. If 0 is returned for the header height, the table view uses the default dimension (approximately 30px or so). 1 px is the smallest you can specify. In this case, the returned header view is nil.