【发布时间】:2014-08-10 22:49:34
【问题描述】:
我应该如何以编程方式调整 Storyboard 文件中创建的 UIImageView 的尺寸以匹配特定图像的尺寸?将 UIImageView 的 frame 或 bounds 设置为所选图像的 frame 或 bounds 不会改变 Xcode iOS 模拟器中 imageView 的大小。我查看了许多其他类似的问题并尝试了他们的答案,但到目前为止,他们给出的修复似乎都没有奏效。
这是用于尝试调整 UIImageView 大小的代码:
-(void)viewWillAppear:(BOOL)animated{
//Get selected image
UIImage *selectedImage=[UIImage imageNamed:selectedItem.pictureName];
//Set imageView's image to selected image
imageView.image=selectedImage;
//Make new frame with dimensions of selected image and same origin
CGRect newImageViewFrame=CGRectMake(imageView.frame.origin.x,imageView.frame.origin.y,selectedImage.size.width,selectedImage.size.height);
//Set imageView's frame to match that of the newly created frame
imageView.frame=newImageViewFrame;
[super viewWillAppear:animated];
}
正确调整 imageView 大小的唯一方法是将静态 imageView 替换为以编程方式创建的 imageView 以匹配 selectedImage 的框架。从头开始创建新的 UIImageView 时,这似乎很奇怪,但在尝试调整现有 UIImageView 的大小时却不行。
我的项目目前正在使用 AutoLayout,但我没有为相关的 UIImageView 添加任何约束。这可能是问题的根源吗?
【问题讨论】:
-
图片视图的内容模式是什么?您是否尝试过设置父视图的 view.clipsToBounds = YES?
-
您确定XIB中的ImageView已经正确连接到IBOutlet了吗?
-
我试过
selectedImage.clipsToBounds=YES;和selectedImage.contentMode=UIViewContentModeScaleAspectFit;,但似乎都没有任何效果。我假设 imageView 连接正确,因为 Storyboard 显示了selectedImage和Referencing Outlets下的 ViewController 之间的连接,并且ViewController.h中selectedImage旁边的圆圈是阴影。
标签: ios uiimageview uiimage autolayout