1

您好,我正在尝试调整 UIImage 的大小,但即使我没有收到任何错误,它也无法正常工作。

她的 .h 文件的代码

IBOutlet UIImageView *Fish;

这是.m文件的代码

Fish.frame = CGRectMake(0, 0, 300, 293);

我究竟做错了什么?谢谢你的帮助

4

2 回答 2

1

图像可能没有调整大小,因为您只是在调整图像视图的大小。确保在情节提要中制作图像视图(鱼),移动 ScaleToFill。由于声誉问题,我无法进行截图(抱歉 :( )

或者,如果您的目标不是调整图像视图的大小,而是调整它所持有的图像的大小,您可以这样做:

UIImage *image = Fish.image;
UIImage *image = YourImageView.image;
    UIImage *tempImage = nil;
    CGSize targetSize = CGSizeMake(80,60);
    UIGraphicsBeginImageContext(targetSize);

    CGRect thumbnailRect = CGRectMake(0, 0, 0, 0);
    thumbnailRect.origin = CGPointMake(0.0,0.0);
    thumbnailRect.size.width  = targetSize.width;
    thumbnailRect.size.height = targetSize.height;

    [image drawInRect:thumbnailRect];

    tempImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    YourImageView.image = tempImage;

您可以将 thumbnailRect 设置为您想要的任何大小。

希望这可以帮助!请在应用商店搜索 Nerdy Lime 以找到我所有的应用!谢谢!

于 2014-10-16T18:38:55.160 回答
0

我敢打赌你的插座没有连接。在您的 " viewDidLoad" 方法中,尝试执行以下操作:

if(Fish)
{
    Fish.frame = CGRectMake(0, 0, 300, 293);
} else {
    NSLog(@"Fish is null; why did I forget to connect the outlet in my storyboard or xib?");
}

这不是调整 UIImageView 大小的最佳方式。如果您使用的是常规弹簧和支柱,您可以通过单击弹簧和支柱来增加出口,以根据超级视图的大小进行增长,例如:

成长一切

如果你在做自动布局,你可以做不同的事情(基本上将你的视图固定到超级视图的所有四个方面)。

这是我的做法:

1)选择要添加约束的出口/对象(在您的情况下,它将是鱼图像视图)

2) 看到 Interface Builder 窗口底部的分段控件了吗?单击第二个,您将看到一个弹出视图打开,其中包含要添加的可能约束列表。

3) 在我的示例中,我在 ImageView 中添加了约束,使其始终距离超级视图的每个边缘 10 个像素(注意四个“10”和实心红线意味着我正在添加四个约束)。

AutoLayout 很难习惯(而且我自己还在学习),但我怀疑一旦掌握了它,它将成为一个强大的新工具,尤其是当 Apple 在不久的将来。

添加新约束

于 2014-02-24T05:54:16.577 回答