ऐसा करने का एक और तरीका UITableViewDelegate
विधि का जवाब देना होगा willDisplayHeaderView
। पारित दृश्य वास्तव में एक उदाहरण है UITableViewHeaderFooterView
।
नीचे दिया गया उदाहरण फ़ॉन्ट को बदलता है, और शीर्षक पाठ को सेल के भीतर लंबवत और क्षैतिज रूप से केंद्रित करता है। ध्यान दें कि heightForHeaderInSection
टेबल व्यू के लेआउट में आपके हेडर की ऊंचाई के हिसाब से किसी भी तरह के बदलाव के लिए आपको जवाब देना चाहिए । (अर्थात, यदि आप इस willDisplayHeaderView
विधि में हेडर की ऊँचाई को बदलने का निर्णय लेते हैं ।)
फिर आप titleForHeaderInSection
विभिन्न खंड शीर्षकों के साथ इस कॉन्फ़िगर हेडर का पुन: उपयोग करने के लिए विधि का जवाब दे सकते हैं ।
उद्देश्य सी
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
header.textLabel.textColor = [UIColor redColor];
header.textLabel.font = [UIFont boldSystemFontOfSize:18];
CGRect headerFrame = header.frame;
header.textLabel.frame = headerFrame;
header.textLabel.textAlignment = NSTextAlignmentCenter;
}
स्विफ्ट 1.2
(नोट: यदि आपका व्यू कंट्रोलर किसी का वंशज है UITableViewController
, तो इसे घोषित करने की आवश्यकता होगी override func
।)
override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
{
let header:UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
header.textLabel.textColor = UIColor.redColor()
header.textLabel.font = UIFont.boldSystemFontOfSize(18)
header.textLabel.frame = header.frame
header.textLabel.textAlignment = NSTextAlignment.Center
}
स्विफ्ट 3.0
यह कोड यह भी सुनिश्चित करता है कि यदि आपका हेडर दृश्य UITableViewHeaderFooterView के अलावा कुछ और है तो ऐप क्रैश नहीं होता है:
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
guard let header = view as? UITableViewHeaderFooterView else { return }
header.textLabel?.textColor = UIColor.red
header.textLabel?.font = UIFont.boldSystemFont(ofSize: 18)
header.textLabel?.frame = header.frame
header.textLabel?.textAlignment = .center
}