4

UITableViewCell クラスを作成せずに、同じ xib 内の UITableView でカスタム UITableviewCell を使用したいですか?

以下に示すように、UITableViewCell の識別子を設定し、次のように使用しました。

同じxibのUITableViewとUITableViewCell

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
    static NSString *CellIdentifier = @"CustomIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  }

}

しかし、機能していませんか?

4

3 に答える 3

0

はい、次のコードのようにできます

ViewDidLoad または ViewWillAppear の下

label1Array=[NSMutableArray arrayWithObjects:@"A",@"B",nil];
label2Array=[NSMutableArray arrayWithObjects:@"C",@"D",nil];
label3Array=[NSMutableArray arrayWithObjects:@"E",@"F",nil];

UITableViewDelegate

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

static NSString *CellIdentifier = @"aCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
UILabel *label1=[[UILabel alloc]init];
label1.frame=CGRectMake(0,0,40,40);
label1.text=[label1Array objectAtIndex:indexPath.row];
................
[cell.contentView addSubView: label1];

UILabel *label2=[[UILabel alloc]init];
label2.frame=CGRectMake(50,0,40,40);
label2.text=[label2Array objectAtIndex:indexPath.row];
[cell.contentView addSubView: label2];

UILabel *label3=[[UILabel alloc]init];
label3.frame=CGRectMake(100,0,40,40);
label3.text=[label3Array objectAtIndex:indexPath.row];
[cell.contentView addSubView: label3];
}

お役に立てれば !!!

于 2013-03-13T07:08:55.513 に答える