我的UIViewController里面有一个UIImageView。它加载的图像为81x37,原点为0x20。我想要做的是创建该图像作为我的背景和徽标。我的意思是,当我启动我的应用程序时,我希望图像包含整个屏幕,一旦我加载了所有数据并准备向用户显示,我想将它缩小为仅仅是一个图标屏幕的左上角。我想说调整大小的代码工作,但它似乎拉伸图像并将其切断大约一半。因此,它要么在屏幕尺寸之外渲染,要么只渲染它可以做到的。
以下是我在viewDidLoad和myReady函数中完成帧调整大小的代码片段。
- (void) viewDidLoad
{
originalSize = CGRectMake(self.logoImage.frame.origin.x, self.logoImage.frame.origin.y, self.logoImage.frame.size.width, self.logoImage.frame.size.height);
fullScreenSize = CGRectMake(0.0, 0.0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);
[self.logoImage setFrame:fullScreenSize];
}
- (void)isReady:(BOOL)initialized
{
if(initialized)
{
[self.logoImage setFrame:self.originalSize];
}
else
{
[self.logoImage setFrame:self.fullScreenSize];
}
}
答案 0 :(得分:0)
为什么不设置originalSize = self.logoImage.frame和fullScreenSize = [[UIScreen mainScreen] bounds]?
无论如何,假设您的logoImage是imageView,您是否将imageView的contentMode设置为UIViewContentModeAspectFit或等效?默认情况下,imageViews不会缩放图像。
答案 1 :(得分:0)
我要感谢Damo回答我的问题。答案在评论中。
这是Damo的回答 -
您是否检查过fullScreenSize以查看它是否正在存在 设置为,实际上是正确的;即“拉伸图像和 将它切断中途“听起来就像它有一个风景画框 应该有一个纵向框架(反之亦然)。如果是这样的话 有更好的方法来确定框架。