在Interface Builder中,我有一个简单的视图,其中包含UIImageView,并且正在尝试限制图像视图的宽度和高度。我以几种方式添加了约束,但是每当我在模拟器中运行时,图像视图都无法正确显示,而是始终采用PNG图像的尺寸,该尺寸小于模拟器的设备。图像视图的内容模式为“缩放以填充”。我正在像这样加载xib:
VCMain *vc = [[VCMain alloc] initWithNibName:@"Main" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc];
navController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
navControllermodalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:navController animated:YES completion:nil];
我尝试将图像视图限制为超级视图,并将其限制为安全区域,但是没有任何变化。无论选择哪种控制台打印,都可以看到“安全区域”始终采用图像视图的尺寸(即使设置为“缩放至填充”,这也奇怪地采用了png文件的尺寸)。
我还测试了分配大于模拟器尺寸(使用iPhone Xs btw)且小于模拟器尺寸的图像。您可以在下面的图片中看到图像视图不符合约束条件。
我在做什么错?为什么安全区符合图像尺寸?下面是显示设置的IB图片,然后是模拟器如何渲染事物的图片。
当我使用小于Simulator设备尺寸的图像时,会得到以下提示:
尽管您看不到,但“安全区域”尺寸为{{0,0},{320,480}},正好是PNG的大小。
当我使用的图像版本比模拟器设备的暗处大得多时,我得到:
同样,“安全区”尺寸恰好是PNG的尺寸,在这种情况下为{{0,0},{2133,2789}},即使那里的主视图有{{0,0}, {375,812}}