0

私の理解では、cellForRowWithIndex パスを変更する必要がある画像を含むアクセサリ ビューを表示します。

SOのさまざまなチュートリアルと質問に基づいて、キッチンシンク以外のすべてをこのメソッドに投入しました。アクセサリ ビューのみを含める必要があると言う人もいます。ボタンが必要だと言う人もいます。とにかく、画像はまだ表示されていません。

ストック アクセサリ ビューの 1 つとなしのように、この問題はストーリーボードにないとも言われました。

画像をアクセサリ ビューに表示するための確実な方法を誰でも推奨できますか。

これが私が成功せずに試してきた方法です:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
   // UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
//    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
//    cell.selectionStyle = UITableViewCellSelectionStyleBlue;

    IDContactImport *contactImport = self.contacts[indexPath.row];
    IDTableViewCell *idTableCell =(IDTableViewCell *)cell;
    idTableCell.contactImport=contactImport;
    if (contactImport.imageData==nil)
    {
        idTableCell.iconView.image = [UIImage imageNamed:@"headshot.jpg"];
    }
    else{
       idTableCell.iconView.image = [UIImage imageWithData:contactImport.imageData];
    }
    UIImage *image = [UIImage imageNamed:@"checked.gif"];

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    CGRect frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
    button.frame = frame;
    [button setBackgroundImage:image forState:UIControlStateNormal];

    [button addTarget:self action:@selector(checkButtonTapped:event:)  forControlEvents:UIControlEventTouchUpInside];
    button.backgroundColor = [UIColor clearColor];
    cell.accessoryView = button;


    NSLog(@"Trying to load accessory image");

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checked.gif"]];
    cell.accessoryView = imageView;
  //  UIImage *image = [UIImage   imageNamed:@"headshot.jpg"];

 //   UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
 //   CGRect frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
    button.frame = frame;
    [button setBackgroundImage:image forState:UIControlStateNormal];

    [button addTarget:self action:@selector(checkButtonTapped:event:)  forControlEvents:UIControlEventTouchUpInside];
    button.backgroundColor = [UIColor clearColor];
    cell.accessoryView = button;
    return cell;
}
4

1 に答える 1

0

あなたはそこに正しい答えを持っています。しかし、コードの後半で上書きされます。

正解です:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checked.gif"]];
cell.accessoryView = imageView;

また、GIF ではなく PNG 画像を使用してください。これは、iOS 開発に適した形式です。

于 2015-06-11T01:11:51.857 に答える