UIImageView 内で画像をスケーリングしています: UIViewContentModeScaleAspectFill
画像はうまくスケーリングされますが、私の問題は ImageView が UIScrollView 内にあることです。原点を 0,0 に設定しました。これは、私が使用している大部分の画像では問題ありませんが、一部の画像は高さが高く、範囲外に押し出されています。画像をトリミングしたくありません。範囲外の量に基づいて、UIImageView フレームを Y 軸に動的に押し下げたいと思います。
Y 軸/高さの範囲外のものを見つけるにはどうすればよいですか? 貧弱なコード例を許してください。
NSString *ImageURL = [self.detailItem objectForKey:@"job_header"];
anImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, MAX_HEIGHT, 118)];
anImage.contentMode = UIViewContentModeScaleAspectFill;
[anImage setImageWithURL:[NSURL URLWithString:ImageURL] placeholderImage:[UIImage imageNamed:@"placeholder.png"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
//Adjust the frame once the image is loaded
[self adjustPositions];
}];
調整位置内:
if (anImage.image.size.height > MAX_HEIGHT) {
CGRect myFrame = anImage.frame;
myFrame.origin.y = 100;
myFrame.origin.y = anImage.frame.size.height / anImage.image.size.height;
anImage.frame = myFrame;
}
私も使用しています:SDWebImage、これはQが関連しており、私の問題をもう少しよく説明するかもしれません:UIImageView、setClipsToBounds、および私の画像がどのように頭を失っているか
境界をまったく切り取りたくないことに注意してください。境界を保持し、原点を真の (0,0) 位置に移動するだけです。