有人可以用基本术语解释添加部分的流程是如何工作的吗?
我有一个对象数组,我目前正在填充到单个分段UITableView
中,但是我想根据这些对象的共享“类别”属性将它们分成多个部分。我从API获取对象列表,所以我不知道我将拥有的每个类别中有多少。
很多,非常感谢提前。
答案 0 :(得分:1)
您必须使用UITableViewDataSource协议。您必须实现一个可选方法:
//Optional
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Default is 1 if not implemented
NSUInteger sectionCount = 5; //Or whatever your sections are counted as...
return sectionCount;
}
确保为每个部分计算您的行数:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 4; //This will return 4 rows in each section
}
如果您想为每个部分命名页眉和页脚:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"";
}// fixed font style. use custom view (UILabel) if you want something different
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
return @"";
}
最后,确保正确实施单元格:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier:
// Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls)
NSUInteger section = [indexPath indexAtPosition:0];
NSUInteger rowInSection = [indexPath indexAtPosition:1];
//Do your logic goodness here grabbing the data and creating a reusable cell
return nil; //We would make a cell and return it here, which corresponds to that section and row.
}
可折叠部分是另一个野兽。您需要继承UITableView,或者只在CocoaControls上找到一个。