gpt4 book ai didi

ios - 嵌套堆栈 View 不会响应基于大小类的更改轴

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:31 27 4
gpt4 key购买 nike

我有 4 个简单的 View ,我想在 iPhone 上以垂直 4x1(如果水平紧凑)或水平 2x2(如果采用任何其他组合)布局。我还将 wC+vC 添加为水平 2x2,因为 iPhone 横向是 wC+vC。

我的界面构建器布局如下所示:

enter image description here

当在 Google 助理中以横向和纵向显示 iPhone 4s 的预览时,我得到了预期的结果:

enter image description here

但是!当我将模拟器用于任何 iPhone 并将其设置为横屏时,我得到以下信息:

enter image description here

无论我尝试什么,我永远无法让 TopStack 和 BottomStack 都显示为水平。如果我删除底部堆栈,顶部变为水平。但是一旦底部堆栈开始起作用,顶部堆栈就不会响应。

我什至在 wC+vC 的代码中尝试过这个:

-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
if( self.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassCompact && self.traitCollection.verticalSizeClass == UIUserInterfaceSizeClassCompact ) {
[self.TopStack setAxis:UILayoutConstraintAxisHorizontal];
[self.BottomStack setAxis:UILayoutConstraintAxisHorizontal];
} else {
[self.TopStack setAxis:UILayoutConstraintAxisVertical];
[self.BottomStack setAxis:UILayoutConstraintAxisVertical];
}

当我调试时,我可以验证顶部堆栈实际上在 UILayoutConstraintAxisHorizo​​ntal 中,但没有正确显示。

有没有人知道哪里出了问题?

最佳答案

这可能是 UIStackView 的持续错误。似乎在 iOS 9.0 的 beta 版本中也存在类似的问题,并且在嵌入式 UIStackViews 方面可能仍然存在一些挥之不去的问题:

http://useyourloaf.com/blog/adapting-stack-views-with-size-classes/

按照上面文章中的指示添加以下代码确实解决了这个问题,但代价是屏幕尺寸不可知并失去了一些使 Size Classes 有用的东西:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

if (size.width > size.height)
{
[self.topStack setAxis:UILayoutConstraintAxisHorizontal];
[self.bottomStack setAxis:UILayoutConstraintAxisHorizontal];
}
else
{
[self.topStack setAxis:UILayoutConstraintAxisVertical];
[self.bottomStack setAxis:UILayoutConstraintAxisVertical];
}
}

可下载Demonstration Xcode Project from here .

关于ios - 嵌套堆栈 View 不会响应基于大小类的更改轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37377519/

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