我正在制作聊天应用,并创建了使用Container view
在视图中实现的角色组件。我希望它有最大宽度,所以在iPhone上它将是全宽但在iPad中心有固定宽度。同样在横向iPhone上它应该是可滚动的(我已经使用Scroll view
但是在横向方向上它表现得非常奇怪)。
这就是创建角色组件的样子。它包含View
中的所有元素,但Xcode告诉它们是错误。现在它将所有元素分开,它们的宽度<= 350,并且尾随和前导边距> = 0 - 所有这一切都很好但是当我在视图中插入这个组件时(它看起来像这样):
...使用Container view
包裹着Scroll view
,它表现得非常奇怪。我在顶部,底部,左侧和右侧的Container view
约束都等于0,但Xcode显示警告y
不等于预期。它不能使Container view
与Scroll view
一样大。另外我想让它可滚动,所以当屏幕高度不足以显示整个表格时,你可以滚动它。但是现在当您将屏幕旋转到横向视图时,Container view
的大小也会发生变化,因此Scroll view
不可滚动。有什么想法吗?
答案 0 :(得分:1)
您可以在Storyboard
中执行此操作,方法是根据屏幕大小选择要自定义的元素的Attributes inspector
,然后点击属性左侧的+
符号你想自定义。但是,这只提供了非常有限的选项,因此您最好在代码中以编程方式检查屏幕大小,或者对iPad和iPhone使用不同的Storyboards
。
要使用不同的故事板,您可以执行以下操作:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let screenWidth = UIScreen.main.bounds.width
let orientation = UIDevice.current.orientation
if screenWidth > x { //use iPad storyboard
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "identifier")
self.window.rootViewController = vc
} else {
let storyboard = UIStoryboard(name: "OtherStoryboard", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "otherIdentifier")
self.window.rootViewController = vc
}
...
}