gpt4 book ai didi

iOS 导航 View 背景图像 UIViewContentModeScaleAspectFill 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:07:23 24 4
gpt4 key购买 nike

使用下面的代码,我已经将背景图像添加到 UINavigationController( View ,而不是导航栏)并且我试图缩放图像以填充 View ,因为我不知道用户的设备和方向。 (注意:我不想创建特定于设备或方向的尺寸/分辨率,因为我的背景图像可能会发生变化,因此这会花费太多时间)。

- (void)viewDidLoad
{
[super viewDidLoad];

NSLog(@"%@", NSStringFromCGRect(self.navigationController.view.frame));

// Set background image
NSString *filename = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"assets/images/wallpaper.jpg"];
self.background = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:filename]];
self.background.contentMode = UIViewContentModeScaleAspectFill;
self.background.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
self.background.center = CGPointMake(CGRectGetMidX(self.navigationController.view.frame), CGRectGetMidY(self.navigationController.view.frame));
[self.navigationController.view insertSubview:self.background atIndex:0];
}

无论屏幕尺寸和方向如何,UIViewContentModeScaleAspectFill 和 UIViewAutoresizingFlexibleHeight/Width 都应该使图像缩放以填满屏幕。但是,我需要有关模拟器的问题的帮助:iOS 的行为会有所不同,具体取决于模拟器是在纵向/横向模式下启动。

下图显示了当应用程序以纵向模式启动然后旋转到横向时发生的情况。在纵向模式下,图像不会缩放以填充 View (图像上方/下方有黑条)。在风景中,图像会正确缩放以填充 View 。

image1

下图显示了当应用程序以横向启动然后旋转为纵向时发生的情况。在风景中,图像不会缩放以填充 View (图像两侧有黑条)。在纵向模式下,图像会正确缩放以填充 View 。

image2

为什么 iOS 以不同的方式处理这两种情况,为什么图像不能正确缩放以填充 View 以及如何让 UIViewContentModeScaleAspectFill 正常工作?

最佳答案

重新发布我的评论作为答案,以便您可以将此问题标记为已解决。

您没有设置 UIImageView 的初始 frame。尝试类似的东西

- (void)viewDidLoad
{
[super viewDidLoad];

...

self.background.frame = self.navigationController.view.bounds;
[self.navigationController.view insertSubview:self.background atIndex:0];
}

关于iOS 导航 View 背景图像 UIViewContentModeScaleAspectFill 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36335890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com