劃分所以這是基於了我的問題在這裏目標C動態的NSDictionary的UI表視圖通過節頭
objective c when to use NSDictionary instead of NSArray
道歉的菜鳥問題。我剛開始學習目標c,而且我很困惑。
- (void)viewDidLoad
{
[super viewDidLoad];
headers = [NSArray arrayWithObjects:@"Header Section 1 (H1)", @"Header Section 2 (H2)", nil];
events = [NSArray arrayWithObjects:@"H1 Content 1", @"H1 Content 2", nil];
myInfo = [NSArray arrayWithObjects:@"H2 Content 1", @"H2 Content 2", @"H2 Content 3", nil];
menuDetails = [[NSMutableDictionary alloc] init];
for(NSString *event in events){
[menuDetails setValue:event forKey:@"Header Section 1 (H1)"];
}
for(NSString *info in myInfo){
[menuDetails setValue:info forKey:@"Header Section 1 (H2)"];
}
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return [[menuDetails allKeys] count];
}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return [[[menuDetails allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]objectAtIndex:section];
}
想限制本作的第一部,但沒有在第二段
-(NSInteger)tableView:(UITableView *)tableview numberOfRowsInSection:(NSInteger)section { return 5; }
所以,我真的不知道如何使這個充滿活力的,當我試圖填補用這種方法的細胞。我真的不知道如何確保它選擇的部分特定小區是在(阻塞線)的「關鍵」:
-(UITableViewCell *)tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {
static NSString *CellIdentifier = @"OptionCellIdentifier";
MenuOptionTableCell *cell = (MenuOptionTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"OptionCellIdentifier" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
NSDictionary *menuItem = [[menuDetails valueForKey:[[[menuDetails allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
cell.optionName.text = [menuItem objectForKey:@"Events"];
return cell;
}
編輯:GAAAHHH,格式化被殺害我。它不會代碼標記內得到
這是IDK做什麼:
cell.optionName.text = [菜單項objectForKey:@ 「活動」];
所以,我想發生的事情是:
- 節頭1
- H1內容1
- H1內容2
- 節頭1
- H2內容1
- H2含量2
- H1內容3
快速的問題,你不必擔心numberOfRowsInSection?我想限制第一部分顯示的行數,這就是爲什麼。 – gdubs
哦,我收到「titleForHeaderInSection」錯誤。它會拋出[MainOptionsViewController tableView:numberOfRowsInSection:]:無法識別的選擇發送到實例...... – gdubs
我更新了包含此必需方法的答案。我在這裏返回一個硬的「2」,但將其設置爲任何您可能想要的0行中的行數。 –