gpt4 book ai didi

iOS:自动布局的问题。模拟器结果随着 Storyboard的变化而变化

转载 作者:行者123 更新时间:2023-11-28 12:13:01 25 4
gpt4 key购买 nike

我正在制作我的第一个 iOS 应用程序。我遇到了自动布局和 ScrollView 的问题。所以现在我在主 Storyboard上有一个 ScrollView 。 ScrollView 应该占据整个屏幕。我还有其他三个 xib 文件。每一个都是 ScrollView 中的一页。所以我可以实现类似可滚动演练的东西。我现在的问题是。如果我改变主 Storyboard的大小,我从模拟器得到的结果就会不同。

此外,当应用程序加载时,它不会立即在屏幕上显示我拥有的内容。它只会显示纯黑色背景。我需要先在屏幕上滚动,然后所有的文字、图像才会显示出来。我也不确定出了什么问题。我的主 Storyboard没有背景颜色。这可能与上述问题有关吗?


第一个问题的一些示例,如果我将主 Storyboard更改为 iPhone Plus 大小。模拟器将显示 iPhone Plus 设备的正确尺寸,但不会显示普通 iPhone 和 iPhone X 的尺寸。如下图所示。

enter image description here

如果我将 Storyboard更改为常规 iPhone 尺寸。 iPhone 8 将显示正确的尺寸,但 plus 和 X 将关闭。

enter image description here

这就是我为 ScrollView 设置约束的方式。

enter image description here

这就是我在代码中设置单个 xib 和 ScrollView 的方式。

override func viewDidLoad() {
super.viewDidLoad()

//Set up individual view for scroll view

let xOrigin = self.view.frame.width

creditScreen = CreditScreenView(nibName: "CreditScreenView", bundle: nil)

mainScroll.addSubview(creditScreen.view)

forWeather = ForcastScreenView(nibName: "ForcastScreenView", bundle: nil)

mainScroll.addSubview(forWeather.view)

nowWeather = NowScreenView(nibName: "NowScreenView", bundle: nil)

mainScroll.addSubview(nowWeather.view)

//mainScroll.translatesAutoresizingMaskIntoConstraints = true

// set up the size for each view
creditScreen.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)

forWeather.view.frame = CGRect(x: xOrigin, y: 0, width: self.view.frame.width, height: self.view.frame.height)

nowWeather.view.frame = CGRect(x: xOrigin * 2, y: 0, width: self.view.frame.width, height: self.view.frame.height)

mainScroll.contentSize = CGSize(width: CGFloat(view.frame.width * 3), height: CGFloat(view.frame.height))
mainScroll.contentOffset.x = view.frame.width * 3

mainScroll.setContentOffset(CGPoint(x: view.frame.width * 2, y: 0), animated: true)

//Set up the location manager here.
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()


}

我不确定是什么导致了这个问题,也许是我设置 xib 的方式?当我用谷歌搜索这个问题时,有人建议在主 Storyboard中放置一个 View 作为顶级 View ,然后将 ScrollView 放在该顶级 View 中。它对我不起作用。有人可以帮忙解决这个问题吗?谢谢!

这是源代码的 GitHub,以备不时之需。 https://github.com/lucky13820/air

最佳答案

要回答您的黑屏问题,请使用此代码

mainScroll.setContentOffset(CGPoint(x: view.frame.width * 2, y: 0), animated: true)

以合适的比例向右移动,我在 iPhone 8、8 plus 和 X 上测试过。

关于iOS:自动布局的问题。模拟器结果随着 Storyboard的变化而变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841398/

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