6

我试图将图像放入 uiimageview,图像被下载和加载,并且只有一种分辨率可用于 ios 和 android 应用程序。

所以,我需要图像保持纵横比和比例宽度,我将UIImageView内容模式设置为 UIViewContentModeScaleAspectFill,但它使图像居中,所以它在顶部和底部都超出了屏幕,图像将被设计为不需要底部。

如何将图像对齐到左上角?

UIImageView 也可以缩放到我的宽度吗?或者我该怎么做?

提前致谢。

编辑:

我试过setcliptobounds了,将图像切割成 imageview 大小,这不是我的问题。

UIViewContentModeTopLeft效果很好,但现在我不能申请UIViewContentModeScaleAspectFill,或者我可以同时申请吗?

4

3 回答 3

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;
于 2013-07-22T10:20:48.103 回答
0

UIView这是UIImageViewhas a property的超类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.
于 2013-07-22T10:08:18.603 回答
0

您不能同时使用 UIImageView 对齐和保留纵横比,但是 UIImageView 有一个很棒的子类,名为 UIImageViewAligned,它可以为您实现这一点。你可以从这里在 github 上找到这个项目。
你需要做的如下:

  1. 首先将标头和实现从 UIImageViewAligned-master/UIImageViewAligned/ 复制到您的项目
  2. 将 IB 中对象库中的 ImageView 对象插入到您的视图中。
  3. 在 Utilities 窗格中的 Identity Inspector 中将 ImageView 的类更改为 UIImageViewAligned
  4. 然后在 Identity Inspector 的 User Defined Runtime Attributes 部分中添加所需的对齐方式作为关键路径

就是这样。运行您的项目以确保它。

于 2015-08-03T13:23:08.200 回答