自定义数据驱动的TableView
我有一个分组表视图,其中一个部分填充了 XML 数据。我想做的是在数据驱动部分之前创建另一个部分,并对它应用一个操作。
示例:
向用户显示一个按钮,上面写着“使用您当前的位置”(手动创建部分),下面是用户可以选择的国家/地区列表(数据驱动部分)
使用设置菜单作为指南。有一些选项在一个部分中是单行,因此它们看起来像是一个按钮...
如果这没有意义,我会尽力解释得更好。
所以我有这两行明显的代码...足够简单
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [countrysData count];
}
我想要的是让 numberOfSectionsInTableView
返回 2 并让第一个“部分”说“单击以使用您当前的位置”,然后推入查看地图,第二部分显示我当前工作的国家/地区列表。
I have a grouped tableview that is populated with XML data in one section. What I would like to do is create another section prior to the data driven one, and apply an action to it.
Example:
The user is presented with a button that says "use your current location" (manually created section) and below that is a list of countries the user can alternatively choose from choose from (data driven section)
Use the settings menu as a guide. There are some options which are a single row in a section, so they appear to be a button...
If this doesn't make sense, I will try to explain it better.
So I have these two obvious lines of code...simple enough
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [countrysData count];
}
What I would like is to have numberOfSectionsInTableView
return 2 and have the first "Section" say "Click to use your current location" which would then push into view a map, and the second section display the list of countries I currently have working.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
那么您应该根据 indexPath.section 选择在 didSelectRowAtIndexPath: 方法中执行的操作。哦,你应该检查 cellForRowAtIndexPath: 方法中的 indexPath.section 。
then you should choose what to do in your didSelectRowAtIndexPath: method due to the indexPath.section. oh, and you should check indexPath.section in your cellForRowAtIndexPath: method.
您只需要更新 UITableViewDataSource 和 UITableViewDelegate 协议的所有实现即可适当地考虑新部分及其行。
例如,以下是如何更新 numberOfSectionsInTableView:, tableView:numberOfRowsInSection: 和 tableView:cellForRowAtIndexPath:,但您会想要至少更新 tableView:didSelectRowAtIndexPath: 以及:
You just need to update all of your implementations of the UITableViewDataSource and UITableViewDelegate protocols to appropriately account for the new section and its row(s).
For example, here's how to update numberOfSectionsInTableView:, tableView:numberOfRowsInSection:, and tableView:cellForRowAtIndexPath:, but you will want to update at least tableView:didSelectRowAtIndexPath: as well:
我很确定您可以即时更改 UITableViewDataSource 方法“numberOfSectionsInTableView:”的返回。一旦用户选择了附加部分,只需设置一个标志即可让该方法返回所需的表数量。然后强制重新加载表,您应该会看到新的部分。
I'm pretty sure you can alter the return of UITableViewDataSource's method 'numberOfSectionsInTableView:' on the fly. Once the user selects the choice of an additional section, just set a flag to have the method return the number of tables you want. Then you force a reload of the table and you should see the new section.