gpt4 book ai didi

iPhone UITableView 部分

转载 作者:太空狗 更新时间:2023-10-30 03:30:25 25 4
gpt4 key购买 nike

我一直在编写一个 UITableView 并且每个单元格都会推送一个新 View ,我想做的就是添加两个新部分,一个男性和一个女性,第一个和第二个声音需要在男性部分,第三个声音需要在女性部分。

#import "FirstLevelViewController.h"
#import "SecondLevelViewController.h"
#import "DisclosureDetailController.h"
#import "SecondVoiceController.h"
#import "ThirdVoiceController.h"



@implementation FirstLevelViewController
@synthesize controllers;

-(void)viewDidLoad {
self.title = @"Voices";

NSMutableArray *male = [[NSMutableArray alloc] init];


DisclosureDetailController *th = [DisclosureDetailController alloc];
th.title = @"First Voice";
[male addObject:th];
[th release];

SecondVoiceController *array2 = [SecondVoiceController alloc];
array2.title = @"Second Voice";
[male addObject:array2];
[array2 release];

ThirdVoiceController *array3 = [ThirdVoiceController alloc];
array3.title = @"Third Voice";
[male addObject:array3];
[array3 release];




self.controllers = male;
[male release];
[super viewDidLoad];
}

-(void)viewDidUnload {

self.controllers = nil;
[super viewDidUnload];
}

-(void)dealloc {

[controllers release];
[super dealloc];
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.controllers count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *FirstLevelCell= @"FirstLevelCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:FirstLevelCell];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:FirstLevelCell] autorelease];
}
NSUInteger row = [indexPath row];
SecondLevelViewController *controller = [controllers objectAtIndex:row];
cell.textLabel.text = controller.title;
cell.imageView.image = controller.rowImage;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

NSUInteger row = [indexPath row];

SecondLevelViewController *nextViewController = [self.controllers
objectAtIndex:row];

[self.navigationController pushViewController:nextViewController animated:YES];
}

我想要做的就是添加两个新的部分,一个男性和一个女性,第一个和第二个声音需要在男性部分,第三个声音需要在女性部分。请帮忙解决这个问题一段时间!

最佳答案

tableView 委托(delegate)有一个名为 numberOfSectionsInTableView 的方法.返回您要创建的部分的数量。

然后,在 cellForRowAtIndexPath 中使用 indexPath 的其他属性 [indexPath section] 根据部分分隔行。

一个例子

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2; //one male and other female
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
switch(section){
case 0:
return [male count];
break;
case 1:
return [female count];
break;
}
}


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *FirstLevelCell= @"FirstLevelCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:FirstLevelCell];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:FirstLevelCell] autorelease];
}
SecondLevelViewController *controller;
switch([indexPath section]){
case 0:
controller = [male objectAtIndex: [indexPath row] ];
break;
case 1:
controller = [female objectAtIndex: [indexPath row] ];
break;
}
cell.textLabel.text = controller.title;
cell.imageView.image = controller.rowImage;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}

关于iPhone UITableView 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6445666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com