我对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)
答案 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;