UIImageView, setClipsToBounds et comment mes images perdent leur tête

Je suis le développement d'une application iOS 4.

Je suis en utilisant ce code sur un UIImageView sur un UITableViewCell:

cell.photo.contentMode = UIViewContentModeScaleAspectFill;
[cell.photo setClipsToBounds:YES];

Mes images sont plus haut que large, et quand je UIViewContentModeScaleAspectFillles images sont redimensionnées pour s'adapter à la largeur avec UIImageView largeur. Ce faisant, l'image est plus grande que UIImageView et je le vois à l'extérieur UIImageView.

Puis, j'ai besoin d'utiliser setClipsToBounds:YES pour ne pas permettre cela, mais maintenant, toutes mes images de perdre leur tête.

Est-il possible d'utiliser UIViewContentModeScaleAspectFill et centre de l'image en haut à gauche coin supérieur gauche UIImageView coin? Si j'ai besoin de perdre une partie de l'image, je préfère perdre ses pieds et sa tête.

Mise à JOUR

Je suis en utilisant sdWebImage cadre, et j'ai utilisé Vadim Yelagin réponse et c'est mon code maintenant:

[cell.photo setImageWithURL:[NSURL URLWithString:entry.photo]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]
                        success:^(UIImage *image) {
                            CGFloat scaleX = cell.photoBorder.bounds.size.width / image.size.width;
                            CGFloat scaleY = cell.photoBorder.bounds.size.height / image.size.height;
                            CGFloat scale = MAX(scaleX, scaleY);
                            cell.photo.frame = CGRectMake(0, 0, image.size.width * scale, image.size.height * scale);
                            cell.photo.image = image;
                        } 
                        failure:nil];

- Je attendre pour obtenir toutes les images chargées et recharger déplacer UITableView pour voir l'image de droite sur la droite de la cellule (c'est parce que les images sont mises en cache et il charge plus vite).

Au lieu d'utiliser cell.photo.frame et cell.photo.image j'ai besoin de passer à bloc indexPath.row pour obtenir le droit de la cellule.

Je pourrais ajouter une nouvelle méthode à UIImageView+WebCache:

- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder success:(void (^)(UIImage *image, NSInteger row))success failure:(void (^)(NSError *error))failure;
{
    [self setImageWithURL:url placeholderImage:placeholder options:0 success:success failure:failure];
}

Mais si je fais ça, j'obtiens une erreur ici:

[self setImageWithURL:url placeholderImage:placeholder options:0 success:success failure:failure];

Parce que maintenant, le succès n'est pas de type (void (^)(UIImage *image))

Savez-vous comment puis-je résoudre ce problème?

source d'informationauteur VansFannel