私はUIImageView
50x100の画像を表示しています。
画像 50x50 の一部 (上部) だけを表示したいですか?
どうやってやるの?
私はUIImageView
50x100の画像を表示しています。
画像 50x50 の一部 (上部) だけを表示したいですか?
どうやってやるの?
を使用して画像をトリミングできますCGImageCreateWithImageInRect
。これは、CGImageRef で動作する Quartz プリミティブであるため、次のようになります。
CGImageRef imageRef = CGImageCreateWithImageInRect(originalImage.CGImage, cropRect);
UIImage* outImage = [UIImage imageWithCGImage:imageRef scale:originalImage.scale orientation:originalImage.imageOrientation]];
CGImageRelease(imageRef);
計算するときcropRect
は、ポイントではなくピクセルで指定する必要があることに注意してください。つまり、次のようになります。
float scale = originalImage.scale;
CGRect cropRect = CGRectMake(0, 0,
originalImage.size.width * scale, originalImage.size.height * 0.5 * scale);
ここで、0.5
因子は、上半分のみが必要であるという事実を説明します。
低レベルに行きたくない場合は、画像をUIView
背景色として追加し、clipToBounds
CALayer プロパティを使用してクリッピングを行うことができます。
myView.backgroundColor = [UIColor colorWithBackgroundPattern:myImage];
myView.layer.clipToBounds = YES;
また、myView
それに応じて境界を設定します。
解決策があるかもしれません。これが機能するかどうかを確認してください。Interface Builder には、イメージ コンテンツの塗りつぶしプロパティに関するオプションがあります。に設定できますtop-left
。インターフェイスビルダーの画像に従ってください-
UIImageView
この後、「clip-subviews」をチェックしてサイズを50x50に設定します...