粉碎initWithFrame图像大小的高度和宽度

时间:2014-01-10 23:45:06

标签: ios frame rubymotion

我对UIImageView有一个小问题,我尝试动态放置图像,所以我这样开始

self.picture_view = UIImageView.alloc.initWithFrame (CGRectMake (0, 16,45, 46))

但是我想拍摄我传给他的每张照片的画面尺寸。

所以我喜欢这个。

 picture_frame = picture_view.frame;
 picture_frame.size = picture_view.size;
 picture_view.frame = picture_frame;

但是当我这样做时

NSLog (picture_frame.size.inspect)

每张图片给我45,46, 那么如何恢复我的图像大小和帧覆盖,显示正确的大小

提前谢谢。

PS:我做得很好picture_view.image = UIImage.imageNamed(my_picture)

2 个答案:

答案 0 :(得分:1)

您实际上是将ImageViews帧设置为自身的帧。你需要根据实际的UIImage来做。您可以通过使用图像启动视图来自动执行此操作。

实施例

UIImageView *pictureView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"whatever.png"]];
//The size is already set correctly, but if you want to change the x or y origin do like so

pictureView.frame = CGRectMake(0, 16, pictureView.frame.size.width, pictureView.frame.size.height);

答案 1 :(得分:0)

编辑:这个答案是用Objective-C编写的,但核心思想应该很容易转化为rubymotion。


如果您尝试创建UIImageView,然后调整其大小以适合您指定的UIImage,则应尝试以下操作:

使用图片创建imageView:

UIImage *image = [UIImage imageNamed:@"myPicture.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

更改图像,并调整imageView的大小以适合:

UIImage *anotherImage = [UIImage imageNamed:@"anotherPicture.png"];
imageView.image = anotherImage;

CGRect imageViewFrame = imageView.frame;
imageViewFrame.size = anotherImage.size;
imageView.frame = imageViewFrame;