私のアプリではUITableView
、最初のセルと最後の 3 つのセルの内容が固定されています。ただし、これらのセルの内容の間では、配列の数と内容によって異なります。
例: 最初のセル + 配列カウント + 最後の 3 つのセル.
配列の数は常に異なります。上記で説明したように、テーブルビューを作成するにはどうすればよいですか。
私のアプリではUITableView
、最初のセルと最後の 3 つのセルの内容が固定されています。ただし、これらのセルの内容の間では、配列の数と内容によって異なります。
例: 最初のセル + 配列カウント + 最後の 3 つのセル.
配列の数は常に異なります。上記で説明したように、テーブルビューを作成するにはどうすればよいですか。
//最初のセル + [動的配列] + 最後の 3 つの固定セルの作業コード
#import "tableTOViewController.h"
@interface tableTOViewController ()
@end
@implementation tableTOViewController
- (void)viewDidLoad
{
myArray=[[NSArray alloc] init];
myArray=[NSArray arrayWithObjects:@"Aman",@"Atul",@"Karan",@"Yen",@"Chan",@"Lee", nil];
lastFixedArray=[[NSArray alloc] init];
lastFixedArray=[NSArray arrayWithObjects:@"Snakes",@"Food",@"Drink", nil];
tblView.delegate=self;
tblView.dataSource=self;
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [myArray count]+4;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier=@"cellIdentifier";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil) {
cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
if (indexPath.row==0)
cell.textLabel.text=@"First Cell";
else if (indexPath.row>[myArray count])
cell.textLabel.text=[lastFixedArray objectAtIndex:([indexPath row]-[myArray count]-1)];
else
cell.textLabel.text=[myArray objectAtIndex:indexPath.row-1];
return cell;
}
@end
最後の 3 つのセルにサブビューを追加する場合は、次の条件を使用できます
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier=@"cellIdentifier";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil) {
cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
if (indexPath.row==0)
cell.textLabel.text=@"First Cell";
else if (indexPath.row>[myArray count])
{
int k=([indexPath row]-[myArray count]-1);
switch (k) {
case 0:
[cell.contentView addSubview:thirdLastView];
break;
case 1:
[cell.contentView addSubview:secondLastView];
break;
case 2:
[cell.contentView addSubview:lastView];
break;
}
cell.textLabel.text=[lastFixedArray objectAtIndex:k];
}
else
cell.textLabel.text=[myArray objectAtIndex:indexPath.row-1];
return cell;
}
numberOfRows
メソッドでは、値を次のように返します
4 + [array count];
cellForRowAtIndexPath
スイッチをオンにして、それindexPath.row
に応じてセルの内容を入力します。