जवाबों:
UITableView
एक tableHeaderView
संपत्ति है। सेट करें कि जो कुछ भी आप वहां देखना चाहते हैं।
UIView
एक कंटेनर के रूप में एक नए का उपयोग करें, उस नए पर एक टेक्स्ट लेबल और एक छवि दृश्य जोड़ें UIView
, फिर tableHeaderView
नए दृश्य पर सेट करें।
उदाहरण के लिए UITableViewController
:
-(void)viewDidLoad
{
// ...
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(XXX, YYY, XXX, YYY)];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(XXX, YYY, XXX, YYY)];
[headerView addSubview:imageView];
UILabel *labelView = [[UILabel alloc] initWithFrame:CGRectMake(XXX, YYY, XXX, YYY)];
[headerView addSubview:labelView];
self.tableView.tableHeaderView = headerView;
[imageView release];
[labelView release];
[headerView release];
// ...
}
public override UIView GetViewForHeader(UITableView tableView, nint section) { return headerView; } public override nfloat GetHeightForHeader(UITableView tableView, nint section) { return headerView.Frame.Height; }
इंटरफ़ेस बिल्डर में आप इसे बहुत आसान कर सकते हैं। बस तालिका के साथ एक दृश्य बनाएं और तालिका पर एक और दृश्य छोड़ें। यह टेबल हेडर व्यू बन जाएगा। अपने लेबल और छवि को उस दृश्य में जोड़ें। चित्र पदानुक्रम के लिए नीचे दी गई तस्वीर देखें।
में स्विफ्ट :
override func viewDidLoad() {
super.viewDidLoad()
// We set the table view header.
let cellTableViewHeader = tableView.dequeueReusableCellWithIdentifier(TableViewController.tableViewHeaderCustomCellIdentifier) as! UITableViewCell
cellTableViewHeader.frame = CGRectMake(0, 0, self.tableView.bounds.width, self.heightCache[TableViewController.tableViewHeaderCustomCellIdentifier]!)
self.tableView.tableHeaderView = cellTableViewHeader
// We set the table view footer, just know that it will also remove extra cells from tableview.
let cellTableViewFooter = tableView.dequeueReusableCellWithIdentifier(TableViewController.tableViewFooterCustomCellIdentifier) as! UITableViewCell
cellTableViewFooter.frame = CGRectMake(0, 0, self.tableView.bounds.width, self.heightCache[TableViewController.tableViewFooterCustomCellIdentifier]!)
self.tableView.tableFooterView = cellTableViewFooter
}
आप केवल इंटरफ़ेस बिल्डर में केवल एक UIView भी बना सकते हैं और ImageView और UILabel को ड्रैग और ड्रॉप कर सकते हैं (इसे अपने इच्छित हेडर की तरह दिखने के लिए) और फिर उसका उपयोग करें।
एक बार जब आपका यूआईवीवाई आपको जैसा चाहता है, वैसा ही दिखता है, तो आप प्रोग्राम को एक्सआईबी से इनिशियलाइज़ कर सकते हैं और अपने यूआईटेबल व्यू में जोड़ सकते हैं। दूसरे शब्दों में, आपको आईबी में एनटीआईआरईआरई टेबल को डिजाइन करने की आवश्यकता नहीं है। बस शीर्ष लेख (इस तरह हेडर दृश्य अन्य तालिकाओं में भी पुन: उपयोग किया जा सकता है)
उदाहरण के लिए मेरे पास मेरे एक टेबल हेडर के लिए एक कस्टम यूआईवाईईवाई है। इस दृश्य को "CustomHeaderView" नामक एक xib फ़ाइल द्वारा प्रबंधित किया जाता है और इसे मेरे UITableViewController उपवर्ग में निम्नलिखित कोड का उपयोग करके तालिका शीर्षलेख में लोड किया जाता है:
-(UIView *) customHeaderView {
if (!customHeaderView) {
[[NSBundle mainBundle] loadNibNamed:@"CustomHeaderView" owner:self options:nil];
}
return customHeaderView;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Set the CustomerHeaderView as the tables header view
self.tableView.tableHeaderView = self.customHeaderView;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,tableView.frame.size.width,30)];
headerView.backgroundColor=[[UIColor redColor]colorWithAlphaComponent:0.5f];
headerView.layer.borderColor=[UIColor blackColor].CGColor;
headerView.layer.borderWidth=1.0f;
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 5,100,20)];
headerLabel.textAlignment = NSTextAlignmentRight;
headerLabel.text = @"LeadCode ";
//headerLabel.textColor=[UIColor whiteColor];
headerLabel.backgroundColor = [UIColor clearColor];
[headerView addSubview:headerLabel];
UILabel *headerLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, headerView.frame.size.width-120.0, headerView.frame.size.height)];
headerLabel1.textAlignment = NSTextAlignmentRight;
headerLabel1.text = @"LeadName";
headerLabel.textColor=[UIColor whiteColor];
headerLabel1.backgroundColor = [UIColor clearColor];
[headerView addSubview:headerLabel1];
return headerView;
}