0

私はここで良いリソースを見つけられなかったので、これを公開するのは素晴らしいことだと思いました...そして私の髪を引っ張るのをやめさせます.

アプリ「アジェンダ」(カレンダーアプリ)のように振る舞う-各セルが1日を表すテーブルビューがあります。次のステップは、cellForRowAtIndexPath を使用して、eventsArray を適切なセル内に配置することです。

イベントの配列ではなく、各 indexPath を使用してイベントを表します。(以下に、その部門でヘルプを探している他の人のために、参照として実際のコードを投稿しました)。

誰かが単一のセル内でeventsArrayを実行するコードを作成できれば素晴らしいでしょう-私はそれが私が慣れていないcellForRowAtIndexPathの使用であると仮定しています。前もって感謝します。どんな質問でも撃つだけです。

{

#pragma mark - TableView stuff

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    A1Section *a1section = [self.sections objectAtIndex:section]; 

    return [a1section.rows count];

}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return [self.sections count];
}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    A1Section *a1section = [self.sections objectAtIndex:section];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"EEEE, MMM d, yyyy"];

    NSString *myDateString = [formatter stringFromDate:a1section.date];
    return [NSString stringWithFormat:@"%@", myDateString];
}


-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 47;
}


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 75;
}



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

    static NSString *CellIdentifier = @"Cell";

    UILabel *timeLabel = nil;
    UILabel *nameLabel = nil;


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.backgroundColor = [UIColor redColor];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;



        timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(11.0, 13.0, 55.0, 15.0)];
        [timeLabel setTag:1];
        [timeLabel setBackgroundColor:[UIColor clearColor]];
        timeLabel.textAlignment = UITextAlignmentLeft;
        [timeLabel setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:14]];
        [timeLabel setTextColor:[UIColor blackColor]];

        [timeLabel setLineBreakMode:NSLineBreakByClipping];
        [timeLabel setNumberOfLines:1];
        [cell.contentView addSubview:timeLabel];


        nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(85.0, 11.0, 200.0, 20.0)]; //x = 80.0, width = 235
        [nameLabel setTag:2];
        [nameLabel setBackgroundColor:[UIColor clearColor]];
        nameLabel.textAlignment = UITextAlignmentLeft;
        [nameLabel setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:17]]; 
        [nameLabel setTextColor:[UIColor blackColor]];

        [nameLabel setLineBreakMode:NSLineBreakByTruncatingTail];
        [nameLabel setNumberOfLines:1];
        [cell.contentView addSubview:nameLabel];



    } else {
        timeLabel = (UILabel *)[cell.contentView viewWithTag:1];
        nameLabel = (UILabel *)[cell.contentView viewWithTag:2];


    }

    A1Section *a1section = [self.sections objectAtIndex:indexPath.section];
    PFObject *object = [a1section.rows objectAtIndex:indexPath.row];


    NSDate *someDate = [object objectForKey:@"startDate"];
    NSString *time = [self.dateFormatter stringFromDate:someDate];
    [(UILabel *)[cell.contentView viewWithTag:1] setText:time];

    [(UILabel *)[cell.contentView viewWithTag:2] setText:[object objectForKey:@"textContent"]];




    return cell;

}

}

4

1 に答える 1

0

あなたが何を求めているのか完全にはわかりませんが、配列の内容を で表示するために使用する方法を尋ねていると思いますcellForRowAtIndexPath。その場合は、必要なデータを含む配列プロパティを取得するだけです。次に、でcellForRowAtIndexPath次のようなことができます

NSString *name = [self.dataArray objectAtIndex:indexPath.row];
nameLabel.text = name;

それはあなたの質問に答えていますか?

于 2012-10-18T03:34:58.217 に答える