如何用Storyboard对iPad实现横竖屏的两套约束

如何用Storyboard对iPad实现横竖屏的两套约束

图片说明
图片说明

这种UI在iPad上横屏模式和竖屏模式是不同的。
但用Storyboard添加约束对iPad横竖屏只有一种都是Rw和Rh。

那怎么用Storyboard实现iPad横竖屏两种不同的界面布局呢?

5个回答

qpalzmlsy
qpalzmlsy 你这个和iPad根本没有关系
接近 5 年之前 回复
qpalzmlsy
qpalzmlsy 你这个和iPad根本没有关系
接近 5 年之前 回复

在iOS8中有一种叫 Size Class 的技术,可以做到这种横竖屏分离的布局,这个在网上有很多例子,你可以去找找
但如果还想兼容 iOS7 和以前的版本,那做起来就麻烦了

qpalzmlsy
qpalzmlsy 对啊 但对iPad 横竖屏只提供了一种 w:Regular h:Regular 那怎么对我发图的那种UI进行约束呢?
接近 5 年之前 回复

SizeClass+AutoLayout,下面是相关的网址和博客。

          初探 iOS8 中的 Size Class 

          http://blog.callmewhy.com/2014/09/12/learn-ios8-size-class/

          iOS 8 AutoLayout与Size Class自悟

      http://www.cocoachina.com/ios/20141217/10669.html

          Xcode6中自动布局autolayout和sizeclass的使用

          http://www.cocoachina.com/ios/20140915/9623.html


         视频简介Autolayout与 SizeClass
         https://www.youtube.com/watch?v=IwSTXY0awng
zhao18933
sun_ljz 回复qpalzmlsy: 哦抱歉,忘记 iPad 的 size class 是不分横竖屏的了,那你这个界面就比较麻烦了,如果一定要用约束来做,就只能用代码添加约束。加载界面之后判断当前是横屏还是竖屏,然后添加对应的约束。旋转屏幕后,先移除旧的约束,然后再重新添加对应的约束。 工作量很大
接近 5 年之前 回复
qpalzmlsy
qpalzmlsy 对啊 但对iPad 横竖屏只提供了一种 w:Regular h:Regular 那怎么对我发图的那种UI进行约束呢?
接近 5 年之前 回复

只需定义一套必须的constraints,然后在对应的UIViewController中实现viewWillTransitionToSize方法,对即将转换到的size进行判断,确定是横竖屏后,更新constraint.contant的值,然后中在coordinator.animateAlongsideTransition里面调用相应的updateConstraintsIfNeeded即可。

只能比较麻烦的做了,简单的size classes 不支持。要用到自己配置约束

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问