Ios UIScrollViews子视图在纵向到横向方向更改时不调整自身大小
在我的应用程序中,我有一个层次结构,如主视图->UIScrollView->UISearchBar。搜索栏覆盖整个屏幕宽度。但当它切换到横向时,scrollview会根据横向进行自我调整,覆盖整个屏幕,但其子视图(如UISearchBar width)仍与纵向视图相同。另外,我正在使用Autolayout,并且我已经在情节提要中正确设置了它们的约束(前导和尾随、宽度(大于等于320)等)Ios UIScrollViews子视图在纵向到横向方向更改时不调整自身大小,ios,uiscrollview,autolayout,landscape,Ios,Uiscrollview,Autolayout,Landscape,在我的应用程序中,我有一个层次结构,如主视图->UIScrollView->UISearchBar。搜索栏覆盖整个屏幕宽度。但当它切换到横向时,scrollview会根据横向进行自我调整,覆盖整个屏幕,但其子视图(如UISearchBar width)仍与纵向视图相同。另外,我正在使用Autolayout,并且我已经在情节提要中正确设置了它们的约束(前导和尾随、宽度(大于等于320)等) 另外,我知道在SO中有几个答案,但几乎每个人都在Willatrorate中再次提到设置宽度。但我在UIScr
另外,我知道在SO中有几个答案,但几乎每个人都在Willatrorate中再次提到设置宽度。但我在UIScrollview中有大约15个子视图,我认为无法通过编程方式设置(如增加LOC),而且我认为Autolayout必须有一些解决方案。您可以使用子视图的UIViewAutoresizing mask(autoresizingMask属性)。您可以使用UIViewAutoresizing mask(autoresizingMask属性)您的子视图。试试这个: 此问题将仅通过约束来解决。我创建了一个项目,通过使用正确的约束,它对我来说运行良好 这里我将向您展示如何逐个添加正确的约束:
滚动视图无法很好地处理约束。下面是一种使用约束和界面生成器的方法,它为我提供了一个垂直滚动的滚动视图,该视图不需要任何手动或内容大小欺骗,并且可以旋转:
- 使用约束定位的视图控制器中的滚动视图
- 一种容器(UIView),它是scrollview的一个子视图,定位时带有将每条边固定到superview的约束
- 将所有附加子视图添加到容器视图。使用约束。超过scrollview的高度以获得垂直滚动的scrollview李>
- 您必须向容器视图添加一个附加约束,使其宽度与UIScrollview的宽度相匹配。奇怪的是,您必须这样做,因为将每一侧固定到scrollview应该可以做到这一点,但是如果您不添加额外的约束,它将不适用于旋转
滚动视图无法很好地处理约束。下面是一种使用约束和界面生成器的方法,它为我提供了一个垂直滚动的滚动视图,该视图不需要任何手动或内容大小欺骗,并且可以旋转:
- 使用约束定位的视图控制器中的滚动视图
- 一种容器(UIView),它是scrollview的一个子视图,定位时带有将每条边固定到superview的约束
- 将所有附加子视图添加到容器视图。使用约束。超过scrollview的高度以获得垂直滚动的scrollview李>
- 您必须向容器视图添加一个附加约束,使其宽度与UIScrollview的宽度相匹配。奇怪的是,您必须这样做,因为将每一侧固定到scrollview应该可以做到这一点,但是如果您不添加额外的约束,它将不适用于旋转
我会解释的,但我认为这家伙比我做得更好。但另一方面,如果你想设置子视图的约束,你可以在子视图上运行for-in循环。我会解释的,但我认为这家伙比我做得更好。但另一方面,如果要设置子视图的约束,可以在子视图上运行for-in循环。是否尝试将autoresizingMask=UIViewAutoresizingFlexibleWidth设置为,即搜索栏?是否尝试将autoresizingMask=UIViewAutoresizingFlexibleWidth设置为,即搜索栏?它正在工作。我忘了输入水平中心对齐。谢天谢地,他在工作。我忘了输入水平中心对齐。感谢同样的方法也可以用于水平滚动滚动视图。只需为高度而不是宽度添加额外的约束,然后添加子视图以超过水平滚动的宽度。同样的方法也可用于水平滚动滚动视图。只需为高度(而不是宽度)添加额外的约束,然后添加子视图以超过水平滚动的宽度。
2. now add search bar and add constraints for search bar too,
here below you can find out complete constraints for scrollview and search together: