我在这里阅读了各种帖子,提出了类似的问题......我尝试了各种方式,包括边界和框架等,包括以下内容:
myImage.frame = CGRectMake(0.0f, 0.0f,50.0f, 50.0f);
和
myImage.bounds = CGRectMake(0.0f, 0.0f,50.0f, 120.0f);
这些都不起作用。
但是,我觉得有趣的是,以下代码让我移动图像但不改变宽度:
CGRect frameRect = myImage.frame;
frameRect.size.width = 50.0f;
frameRect.origin.x += 10.5f;
myImage.frame = frameRect;
那么为什么不改变我的ImageView的宽度/高度呢?
我在这里发现了另一篇文章,基本上说我必须修改一小部分代码来调整我的图像大小...这是真的吗?
比如这个: UIImage: Resize, then Crop
当然这比那简单?
答案 0 :(得分: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;
答案 1 :(得分:11)
首先,你不能设置UIImage的框架或边界 - 只能在UIImageView上工作。
我发现更改UIImageView的框架会导致图像缩放到新的大小。有时,这是不合需要的 - 而你想要裁剪图像。
我不知道这是否是你要求的,但是这里有一些代码可以在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);
答案 2 :(得分:3)
从我得到的问题来看,OP想要在容器UIView的大小改变时改变UIImageView的大小。下面的代码可以做到......
UIView * foo = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 25, 25)] autorelease];
foo.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
UIImageView * bar = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"test.png"]];
bar.autoresizingMask = foo.autoresizingMask;
[foo addSubview:bar];
[self.view addSubview:foo];
这里的关键是 foo.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight 和 bar.autoresizingMask = foo.autoresizingMask; 行。忘记其中任何一个,整个jigmarole将停止工作。
答案 3 :(得分:3)
好吧,如果您阅读了有关UIIMage的文档,您可以注意到创建它后无法更改UIImage的任何参数,我实现的解决方案是使用高质量图像来更改某些参数(例如) SliderControl作为螺丝图像,是下一个:
UIImage *tumbImage= [UIImage imageNamed:@"screw.png"];
UIImage *screw = [UIImage imageWithData:UIImagePNGRepresentation(tumbImage) scale:2];
有了这个,我可以在我的应用程序中使用100x100像素图像,缩放到50%。
亲切的问候。
答案 4 :(得分:1)
尝试使用UIScrollView。将UIImageView添加到Interface Builder中的UIScrollView,然后您可以控制图像的位置和大小,如下所示:
CGRect rect = [scrollView frame];
rect.origin.x = 50.0f;
rect.origin.y = 0.0f;
rect.size.width = 320.0f;
rect.size.height = 150.0f;
[scrollView setFrame:rect];
答案 5 :(得分:1)
如果您尝试这些方法无法正常工作,唯一的方法是将宽度和高度的约束添加到UIImageView。
from("activemq:queue:MY_QUEUE")
.process(this.processor1)
.to("ahc:http:\\abc.com/v1/post/id=123")
.process(this.processor2);
答案 6 :(得分:0)
使用myImageView.frame = myNewPosAndSize;
调整图片视图的大小或重新定位(与任何其他视图一样)。您可能会混淆图像视图以其原始大小绘制其图像,可能超出其自身的尺寸。要禁用此功能,请使用myImageView.clipsToBounds = NO;
答案 7 :(得分:-1)
您不必编写整本书,也可以复制该代码。
我相信UIImageView总是以1.0的比例绘制0,0的图像。如果要继续使用UIImageView,则需要调整图像大小。