我正在制作一个通用的演示xcode项目,UIScrollView
包含两个页面,左右滚动来回移动。
我的问题是iPad和iPhone的布局不一样。
ViewController
有UIScrollView
。
AViewController
在中心包含UILabel
(" Good morning...
")。
BViewController
在中心包含UILabel
(" Good night...
")。
以下是ViewController
的代码:
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
let story = UIStoryboard(name: "Main", bundle: nil)
let vc1 = story.instantiateViewController(withIdentifier: "AViewController")
let vc2 = story.instantiateViewController(withIdentifier: "BViewController")
vc1.view.backgroundColor = UIColor.green
vc2.view.backgroundColor = UIColor.red
addContentView([vc1, vc2])
scrollView.contentSize = CGSize(width: UIScreen.main.bounds.width * 2, height: scrollView.frame.height)
}
func addContentView(_ viewControllers: [UIViewController]) {
viewControllers.enumerated().forEach {
addChildViewController($1)
$1.view.frame = CGRect(x: UIScreen.main.bounds.width * CGFloat($0), y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
scrollView.addSubview($1.view)
didMove(toParentViewController: $1)
}
}
}
如果我选择以iPhone 8查看,那么iPhone 8中的布局工作正常如下:(然后从绿色滑动到红色)
但对于iPad:
标签不居中!! 。
如果我选择以iPad身份查看... ,那么对于iPhone来说,它的布局不正确。
这是视图层次结构,很明显布局是正确的但是由于某种原因绿色视图大于屏幕尺寸并被红色视图覆盖。
感谢您的帮助。