समस्या यह है कि, UITableViewController की दृश्य संपत्ति तालिका दृश्य संपत्ति के समान ही है। मुझे एक ही समस्या थी, टेबल के ऊपर कुछ निश्चित सामग्री डालना चाहते थे। मैं बेस क्लास को बदलना नहीं चाहता था, क्योंकि यह बहुत सारी कार्यक्षमता प्रदान करता है जिसे मैं खोना या बाधित नहीं करना चाहता था।
फिक्स वास्तव में आसान है। चाल कस्टम सेट बनाने और self.tableView संपत्ति के लिए प्राप्त करने के लिए है। फिर, loadView में, आप दृश्य को एक नए UIView के साथ प्रतिस्थापित करते हैं और तालिका को इसमें देखें। फिर आप तालिका दृश्य के चारों ओर सबव्यूज़ जोड़ने के लिए स्वतंत्र हैं। यहाँ यह कैसे किया है:
हेडर में:
@interface CustomTableViewController : UITableViewController
{
UITableView *tableView;
}
मीटर में:
- (UITableView*)tableView
{
return tableView;
}
- (void)setTableView:(UITableView *)newTableView
{
if (newTableView != tableView)
{
[tableView release];
tableView = [newTableView retain];
}
}
- (void)loadView {
[super loadView];
//save current tableview, then replace view with a regular uiview
self.tableView = (UITableView*)self.view;
UIView *replacementView = [[UIView alloc] initWithFrame:self.tableView.frame];
self.view = replacementView;
[replacementView release];
[self.view addSubview:self.tableView];
//code below adds some custom stuff above the table
UIView *customHeader = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 20)];
customHeader.backgroundColor = [UIColor redColor];
[self.view addSubview:customHeader];
[customHeader release];
self.tableView.frame = CGRectMake(0, customHeader.frame.size.height, self.view.frame.size.width, self.view.frame.size.height - customHeader.frame.size.height);
}
का आनंद लें!
स्रोत
2012-01-31 17:41:21
[संभावित अनुभाग शीर्षलेखों के साथ UITableView] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/17582818/uitableview-with-fixed-section-headers) –