UIViewContentModeScaleAspectFit不起作用

时间:2016-08-19 11:05:59

标签: ios objective-c

我尝试缩放图像,我想使用Aspect Fit。但它不起作用

solutionImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_solution@2x.png"]];
    // optional:
    solutionImageView.contentMode = UIViewContentModeScaleAspectFit; // content mode
    solutionImageView.center = CGPointMake((currentWidth)/2, currentHeight - (currentHeight/3.5));
    [self.view addSubview:solutionImageView];

Screenshot

1 个答案:

答案 0 :(得分:0)

正如arunit21在他的评论中所说,当你用initWithImage方法创建一个UIImageView时,视图框架的大小是用图像大小计算的。因此,您的图像视图居中但比窗口大。 你可以做到

solutionImageView = [[UIImageView alloc] initWithFrame:yourFrame];
solutionImageView.image = [UIImage imageNamed:@"bg_solution"];
solutionImageView.contentMode = UIViewContentModeScaleAspectFit; // content mode
solutionImageView.center = CGPointMake((currentWidth)/2, currentHeight - (currentHeight/3.5));
[self.view addSubview:solutionImageView];

您也可以在初始化后设置新帧以设置正确的大小。

@2x.png中不需要[UIImage imageNamed:@"bg_solution"]。使用此方法,系统将检查屏幕是否为视网膜并查找@2x图像(如果存在),否则采用正常图像。