• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 用于纵向和横向的自动布局 iPad

[复制链接]
菜鸟教程小白 发表于 2022-12-13 09:37:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

鉴于我们只有 iPad 纵向和 iPad 横向的通用尺寸类别,您最终如何针对不同方向自定义 iPad 的自动布局行为/约束?

我想在肖像中拥有这样的东西:enter image description here

这在横向:enter image description here



Best Answer-推荐答案


在 iOS 8 中,您可以使用 viewWillTransitionToSize:withTransitionCoordinator:,在 Controller 旋转时收到通知。使用高度与宽度的比率来确定您要移动到哪个方向,并相应地调整您的约束。您可以将 IBOutlets 设置为 View 的高度和宽度约束,并在该方法内更改它们的常量值。

另一种方法是同时使用乘数和常数,以自动调整旋转约束。例如,相对宽度约束的公式是:

subview.width = superview.width * 乘数 + 常数

因此,例如,如果您希望纵向 View 全宽 (768) 和横向 View 全宽 (768),您可以求解这两个方程,

768 = 768 * m + c   and   350 = 1024*m + c

Solving those, gives you m= -1.6328  and   c= 2022

要使用它,您可以在 IB 中为您的 subview 设置宽度限制,但选中“在构建时删除”框,以便将其删除并替换为您在代码中添加的那个。

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.subView attribute:NSLayoutAttributeWidth relatedBy:0 toItem:self.view attribute:NSLayoutAttributeWidth multiplier:-1.6328 constant:2022]];
}

通常,您可以在 IB 中完成所有这些操作,但前提是乘数为正;我用这些数字试过了,系统不允许我使用负数作为乘数。

关于ios - 用于纵向和横向的自动布局 iPad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26549987/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap