0

Web サーバーからテーブルビューの UIImageView に画像をロードする際に問題が発生しています

このコードは完璧に機能しますが、私のテーブルビューでは画像が奇妙で見苦しくなります:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Get the cell. Note that this name is the same as in the storyboard
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    //Set the correct name in the cell.
    //Do so by looking up the row in indexpath and choosing the same element in the array
    NSInteger currentRow = indexPath.row;
    Image* currentImage = [self.images objectAtIndex:currentRow];

    // Here we use the new provided setImageWithURL: method to load the web image
    [cell.imageView setImageWithURL:[NSURL URLWithString:currentImage.src] placeholderImage:[UIImage imageNamed:@"testimage.jpg"]];
    return cell;
}

そこで、ストーリーボードに UIImageView を作成し、コードを次のように変更しました。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Get the cell. Note that this name is the same as in the storyboard
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    //Set the correct name in the cell.
    //Do so by looking up the row in indexpath and choosing the same element in the array
    NSInteger currentRow = indexPath.row;
    Image* currentImage = [self.images objectAtIndex:currentRow];

    UIImageView *imgView = (UIImageView *)[cell viewWithTag:100];
    // Here we use the new provided setImageWithURL: method to load the web image
    [imgView setImageWithURL:[NSURL URLWithString:currentImage.src] placeholderImage:[UIImage imageNamed:@"testimage.jpg"]];
    return cell;
}

しかし、このコードを自分のデバイスで実行すると、シグナル SIGABRT エラーが発生します。

カスタム Imageview でこれを機能させるにはどうすればよいですか?

4

2 に答える 2

0

imagevIview がセルに追加されていないため、SIGABRT を取得していますが、セルのcontentView..! したがって、imageView を取得する正しい方法は次のようになります。

UIImageView *imgView = (UIImageView *)[cell.contentView viewWithTag:100];
于 2013-10-31T10:00:20.777 に答える
0

最初のコード スニペットに、次の行を追加します。

cell.imageView.contentMode = UIViewContentModeScaleAspectFill;
cell.imageView.clipsToBounds = YES;
于 2013-10-31T09:13:05.170 に答える