我试图将图像放入uiimageview中,图像被下载并加载到图像中,并且只有一种可用于ios和Android应用程序的分辨率。
所以,我需要图像来保持宽高比和比例宽度,我将UIImageView
内容模式设置为
UIViewContentModeScaleAspectFill
,但它将图像居中,因此它会从屏幕上移出顶部和底部,图像将被设计为不需要底部。
如何将图像对齐到左上角?
UIImageView也可以扩展到我的宽度吗?或者我该怎么做?
提前致谢。
修改
我尝试了setcliptobounds
并将图片剪切为图片查看大小,这不是我的问题。
UIViewContentModeTopLeft
运作良好,但现在我无法申请UIViewContentModeScaleAspectFill
,或者我可以申请两者吗?
答案 0 :(得分:12)
您可以缩放图像以适合图像视图的宽度。
您可以使用UIImage
上的类别来创建具有所选宽度的新图像。
@interface UIImage (Scale)
-(UIImage *)scaleToWidth:(CGFloat)width;
@end
@implementation UIImage (Scale)
-(UIImage *)scaleToWidth:(CGFloat)width
{
UIImage *scaledImage = self;
if (self.size.width != width) {
CGFloat height = floorf(self.size.height * (width / self.size.width));
CGSize size = CGSizeMake(width, height)
// Create an image context
UIGraphicsBeginImageContext(size);
// Draw the scaled image
[self drawInRect:CGRectMake(0.0f, 0.0f, size.width, size.height)];
// Create a new image from context
scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// Pop the current context from the stack
UIGraphicsEndImageContext();
}
// Return the new scaled image
return scaledImage;
}
@end
这样你可以用它来缩放图像
UIImage *scaledImage = [originalImage scaleToWidth:myImageView.frame.size.width];
myImageView.contentMode = UIViewContentModeTopLeft;
myImageView.image = scaledImage;
答案 1 :(得分:0)
UIView
这是UIImageView
的超类,其属性为contentMode
。
您可以使用以下常量进行图像的左上角对齐。
UIViewContentModeTopLeft
Aligns the content in the top-left corner of the view.
保持宽高比
UIViewContentModeScaleAspectFit
Scales the content to fit the size of the view by maintaining the aspect ratio. Any remaining area of the view’s bounds is transparent.
答案 2 :(得分:0)
你不能与UIImageView对齐并保持宽高比。但是UIImageView的一个很好的子类名为UIImageViewAligned,这使你可以实现这一点。你可以在here的github上找到这个项目 您需要做的是:
那就是它。运行您的项目以确保它。