-1
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CellIdentifier = @"Cell";

        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }

    // Set the data for this cell:

        cell.textLabel.text = [namesArray objectAtIndex:indexPath.row];
        cell.textLabel.textColor = [UIColor grayColor];
        cell.textLabel.font = [UIFont fontWithName:@"Trebuchet MS" size:14];
        cell.textLabel.textAlignment = UITextAlignmentLeft;

        cell.imageView.image = [UIImage imageNamed:[imagesArray objectAtIndex:indexPath.row ]];
        UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 5, 5)];
        imgView.image = [UIImage imageNamed:[imagesArray objectAtIndex:indexPath.row ]];
        cell.imageView.image = imgView.image;

        [cell.imageView setFrame:CGRectMake(0, 0, 55, 55)];

        cell.selectionStyle = UITableViewCellSelectionStyleGray;

       return cell;
}

ここではTableViewnotを使用していUITableViewCellますが、 で画像のサイズを変更したいと考えていTableViewます。インターネットで多くの例を見てきましたが、どのように機能するのかわかりません..でサイズを変更することはできませんTableView. 誰かがそれを機能させる方法を説明できますか? [cell.imageView setFrame:CGRectMake(0, 0, 55, 55)]; 動かない

4

3 に答える 3

1

ここでは、画像のトリミングとサイズ変更の両方のロジックを配置し、要件に従って使用します。

トリミングされた画像を取得する場合:

UIImage *croppedImg = nil;
CGRect cropRect = CGRectMake(AS YOu Need); // set frame as you need
croppedImg = [self croppIngimageByImageName:self.imageView.image toRect:cropRect];

返す次のメソッドUIImage画像のサイズが必要な場合

- (UIImage *)croppIngimageByImageName:(UIImage *)imageToCrop toRect:(CGRect)rect
    {
        //CGRect CropRect = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height+15);

        CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
        UIImage *cropped = [UIImage imageWithCGImage:imageRef];
        CGImageRelease(imageRef);

        return cropped;
    }

ここで、上記の方法で返された Croped Image を取得します。

またはサイズ変更

また、サイズ変更のために画像の特定のさと幅で次の方法を使用します。

+ (UIImage*)resizeImage:(UIImage*)image withWidth:(CGFloat)width withHeight:(CGFloat)height
{
    CGSize newSize = CGSizeMake(width, height);
    CGFloat widthRatio = newSize.width/image.size.width;
    CGFloat heightRatio = newSize.height/image.size.height;

    if(widthRatio > heightRatio)
    {
        newSize=CGSizeMake(image.size.width*heightRatio,image.size.height*heightRatio);
    }
    else
    {
        newSize=CGSizeMake(image.size.width*widthRatio,image.size.height*widthRatio);
    }


    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

このメソッドは、必要な特定のサイズで NewImageを返します。

于 2013-11-11T06:08:09.540 に答える
1

セルの外観 (画像ビューのサイズなど) をカスタマイズする場合は、 custom を使用する必要がありますUITableViewCellUITableViewCellStyleDefault現在、画像ビューのサイズをカスタマイズできない標準セルを使用しています。

UITableViewCellストーリーボードまたは Xib ファイルで を作成し、それを画像ビューに追加して、そのタグを番号に設定します。その後、構成のためにセルを取得する必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CellIdentifier";
    UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    UIImageView *imageView = (UIImageView *) [cell viewWithTag:TAG_NUMBER];
    // do your stuff

    return cell;
}
于 2013-11-11T06:08:19.297 に答える
0

多分あなたはこのようなことをすることができます。少なくともセルの contentView の下に新しい imageView を追加するだけで、フレームの設定が簡単になります。

明確にするために、既に UITableviewCell を使用しています。

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

static NSString *CellIdentifier = @"Cell";

   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
// Create a new imageview to have your desired frame

  UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 5, 5)];

 // Add tag 
  imgView.tag = 100;

// Add the imageView to the contentView of the cell
 [cell.contentView addSubview:imgView];

}

// Other codes


UIImageView *imageV = (UIImageView *)[cell.contentView viewWithTag:100];
// Assign Image here
imageV.image = [UIImage imageNamed:[imagesArray objectAtIndex:indexPath.row ]];


cell.selectionStyle = UITableViewCellSelectionStyleGray;

   return cell;
}
于 2013-11-11T06:08:47.853 に答える