将UIImage调整为UIImageView

时间:2013-07-22 09:59:19

标签: ios uiimageview

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

所以,我需要图像来保持宽高比和比例宽度,我将UIImageView内容模式设置为 UIViewContentModeScaleAspectFill,但它将图像居中,因此它会从屏幕上移出顶部和底部,图像将被设计为不需要底部。

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

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

提前致谢。

修改

我尝试了setcliptobounds并将图片剪切为图片查看大小,这不是我的问题。

UIViewContentModeTopLeft运作良好,但现在我无法申请UIViewContentModeScaleAspectFill,或者我可以申请两者吗?

3 个答案:

答案 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上找到这个项目 您需要做的是:

  1. 从UIImageViewAligned-master / UIImageViewAligned /到项目的第一个Copy头和实现
  2. 将IB中对象库中的ImageView对象插入到视图中。
  3. 从“工具”窗格中将IdentityView的类更改为Identity Inspector中的UIImageViewAligned
  4. 然后在Identity Inspector的“用户定义的运行时属性”部分中将所需的对齐方式添加为关键路径
  5. 那就是它。运行您的项目以确保它。