2

テーブルセルにフラグを追加しました。ストーリーボードを使用して、UIImageViewを空のプロトタイプセルに配置し、適切なサイズ(47x34)にしました。次に、ここにコードを追加しました。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell1";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if (cell == nil) {
        cell = [[UITableViewCell alloc]
            initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    cell.textLabel.text = [[[content objectAtIndex:indexPath.section] objectForKey:@"rowValues"] objectAtIndex:indexPath.row];
    cellTxt = cell.textLabel.text;

    UIImageView *flagImg = (UIImageView *) [cell viewWithTag:10];
    NSString *imgFilenm = [cellTxt stringByAppendingString:@".jpg"];
    flagImg.image = [UIImage imageNamed: imgFilenm ];
    cell.imageView.frame = CGRectMake(0, 0, 47, 34);   //  not needed, and doesn't fix it

    return cell;
}

画像は表示されますが、左に約8ピクセルだけ絞られています。なんで?そしてそれを修正する方法は?ありがとう! 小さな旗 オリジナル: ベリーズ

**編集**セルテキストを追加したUILabelに切り替えました。そのコードは次のとおりです。

UILabel *nameLbl = (UILabel *)[cell viewWithTag:5];
nameLbl.text = [[[content objectAtIndex:indexPath.section] objectForKey:@"rowValues"] objectAtIndex:indexPath.row];

ストーリーボードでの表示: 原始生命体

しかし、今では旗も表示されていません。

4

2 に答える 2

0

あなたの旗は「押しつぶされて」いない。それらは実際にはセルのタイトルの後ろに隠されています。次のようなものを試してください:

UIImageView *flagImg = (UIImageView *) [cell viewWithTag:10];
NSString *imgFilenm = [cellTxt stringByAppendingString:@".jpg"];
flagImg.image = [UIImage imageNamed: imgFilenm ];
[cell bringSubviewToFront:flagImg];
于 2012-11-17T19:47:21.653 に答える
0

以下を使用して動作するようになりました:

UIImageView *cellImage = (UIImageView *)[cell viewWithTag:10];
[cellImage setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@.jpg", [self.countries objectAtIndex: [indexPath row]]]]];

他の方法が機能しない理由がわかりません。

于 2012-11-18T00:28:43.567 に答える