0

セルの左側に写真を追加したい UITable があります。写真は現在、showStream メソッドから取得されています (以下のコードを参照)。すべての写真が UITable の最初のセルに追加されます。UITable の各セルに画像の 1 つ (行で区切られた画像) が表示されるように、各写真を 1 つのセルに追加するにはどうすればよいですか? UITableViewCell メソッドを呼び出して、どうにかして各行に 1 枚の写真を配置できますか?

-(void)showStream:(NSArray*)stream 

{
// 1 remove old photos
for (UIView* view in _tableView.subviews) 
{
    [view removeFromSuperview];
}

// 2 add new photo views
for (int i=0;i<[stream count];i++) 
    {

    NSDictionary* photo = [stream objectAtIndex:i];
    PhotoView* photoView = [[PhotoView alloc] initWithIndex:i andData:photo];
    photoView.delegate = self;

// ここでセルを設定します UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];

    if (cell == nil) {


        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"];

        cell.selectionStyle = UITableViewCellSelectionStyleNone;

        NSMutableArray *array = [[NSMutableArray alloc] init];
        [array addObject:photo];

    }
}

これがtableViewメソッドです....疑問符がある場所に何かを渡すことができますか?

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

can I get the photo array inside this method?

    }



return cell;
}
4

1 に答える 1

1

NSArrayでセルを構成する必要があるため、画像を に保存する必要がありますcellForRowAtIndexPath:。テーブル ビューがリロードされるたびに呼び出さcellForRowAtIndexPath:れ、指定されたインデックス パスに適したコンテンツを含むセルが返されることが期待されます。

各セルを設定することもできますshowStream:が、すべての画像をそこに保存してからreloadData最後に保存する方がはるかに簡単です。次に、テーブルビューの事前設定を行って、テーブルビューに含まれる行とセクションの数を伝える必要はありません。更新しようとしている行の可視性チェック (セルが表示されていることを確認するため) を行います。 ... - テーブル ビューによって提供される機能を再利用します...

もっと似たもの:

showStream:(すべての新しいビューを配列、photoList に保存します)

self.photoList = [[NSMutableArray alloc] init];

NSDictionary* photo = [stream objectAtIndex:i];
PhotoView* photoView = [[PhotoView alloc] initWithIndex:i andData:photo];
photoView.delegate = self;

[self.photoList addObject photoView];

cellForRowAtIndexPath:(必要に応じてセルを作成し、セルを消去し、写真ビューを追加します)

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}

[cell.contentView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

[cell.contentView addSubview:[self.photoList objectAtIndex:indexPath.row]];
于 2013-05-27T16:39:50.873 に答える