Xcode 5,为什么图像不会调整大小?

时间:2014-02-24 05:32:51

标签: uiimageview xcode5 cgrectmake

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

她的.h文件的代码

IBOutlet UIImageView *Fish;

继承人.m文件的代码

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

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

2 个答案:

答案 0 :(得分: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大小的最佳方法。如果你正在使用常规弹簧和struts,你可以通过点击弹簧来增长出口。根据superview的大小进行扩展,例如:

Grow Everything

如果您正在进行AutoLayout,那么您可以做一些不同的事情(基本上将视图固定在超视图的所有四个方面)。

我是这样做的:

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

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

3)在我的例子中,我在我的ImageView中添加约束,总是距离超视图的每个边缘10个像素(注意四个“10”和 实体 红线意味着我正在添加四个约束。)

AutoLayout是一种习以为常的痛苦(我自己也在学习它),但我怀疑一旦掌握了它,它将成为一个强大的新工具,特别是当Apple引入额外的iOS屏幕时在不久的将来尺寸。

Add New Constraints

答案 1 :(得分:0)

图像可能没有调整大小,因为您只是调整图像视图的大小。确保在故事板中制作图像视图(鱼),移动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以查找我的所有应用!谢谢!