UIImageView改变宽度和高度

14 iphone

我在这里阅读了各种帖子,询问类似的问题......我尝试了各种方式,包括边界和框架等,包括以下内容:

myImage.frame = CGRectMake(0.0f, 0.0f,50.0f, 50.0f);
Run Code Online (Sandbox Code Playgroud)

和:

myImage.bounds = CGRectMake(0.0f, 0.0f,50.0f, 120.0f);
Run Code Online (Sandbox Code Playgroud)

这些都不是.

但是,我觉得有趣的是,以下代码让我移动图像但不改变宽度:

CGRect frameRect = myImage.frame;
frameRect.size.width = 50.0f;
frameRect.origin.x += 10.5f;
myImage.frame = frameRect;
Run Code Online (Sandbox Code Playgroud)

那么为什么不改变我的ImageView的宽度/高度呢?

我在这里发现了另一篇文章,基本上说我必须修改一本小代码来调整我的图像大小...这是真的吗?

比如这一个: UIImage:调整大小,然后裁剪

当然这比那简单?

小智 26

以下内容将更改UIImaveView的大小,剪切基础图像而不调整其大小并使其与视图的左下角保持对齐:

imageView.frame = CGRectMake(
             imageView.frame.origin.x, 
             imageView.frame.origin.y, newWidth, newHeight);

imageView.contentMode = UIViewContentModeBottomLeft; // This determines position of image
imageView.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)


Gle*_*ett 11

首先,你不能设置UIImage的框架或边界 - 这只适用于UIImageView.

我发现更改UIImageView的框架会导致Image 缩放到新的大小.有时,这是不合需要的 - 而你想要裁剪图像.

我不知道这是否是你要求的,但这里有一些代码可以在UIImageView中将图像裁剪为特定大小:

UIImage *myImage = [UIImage imageNamed:@"photo.png"];

CGRect cropRect = CGRectMake(0.0, 0.0, 320.0, 44.0));
CGImageRef croppedImage = CGImageCreateWithImageInRect([myImage CGImage], cropRect);

UIImageView *myImageView = [[UIImageView alloc] initWithFrame:cropRect];
[myImageView setImage:[UIImage imageWithCGImage:croppedImage]]; 

CGImageRelease(croppedImage);
Run Code Online (Sandbox Code Playgroud)


Nil*_*ect -1

您不必写整本书,您可以复制该代码。

我相信 UIImageView 总是以 1.0 的比例在 0,0 处绘制图像。如果您想继续使用 UIImageView,则需要调整图像大小。