ios - 不使用 Storyboard时处理 iOS 方向的正确方法

标签 ios objective-c iphone swift

我正在开发一个应用程序,但我没有使用 Storyboard(或任何 xib 文件)。 Xib 文件看起来太复杂,有时在添加约束时应用程序会无缘无故崩溃,感觉就像一团糟(即使使用 xCode 重置自动约束)。 当我用纯代码编写它时,我得到了更好的结果,而且感觉更自然。

目前我正在添加 View 并通过使用 % 使它们相对(仅用于宽度) 并且它确保 View 将是 super View 宽度的 0.5

var someView : UIView = UIView(frame:
            CGRect(
                origin:CGPoint(
                    x: 0,
                    y: otherView.frame.maxY
                ),
                size: CGSize(
                    width: otherView.frame.width * 0.5,
                    height: SOME_HEIGHT_CONST
                )
            )
        )

而且效果很好,例如创建一个 super View 宽度为 0.8 的矩形: before rotate

问题是,旋转后: after rotate

不使用 Storyboard时处理方向的正确方法是什么?是否可以将 View 大小绑定(bind)到方向更改?

最佳答案

“正确”的方式,正如您所说的那样......或者,正如我称之为“最佳实践”......会让你使用 LayoutConstraints,并在需要时调整那些属性(相对于修改属性框架 - 例如宽度 - 直接)。

根据您支持的 iOS 版本,我建议您查看 WWDC 2015 视频(特别是关于自动布局/布局约束的视频)和 2014 视频(TransitionCoordinators、PresentationControllers 和 ViewControllers 的更新)。这将为您提供基础知识,以便您更好地了解在方向、内容、大小或位置更改期间调用哪些函数。

关于ios - 不使用 Storyboard时处理 iOS 方向的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31500397/

相关文章:

ios - UITabBar ios7 模糊无法在 iPad 3 上运行

objective-c - UITableView 刷新数据

objective-c - 针对 Mac OS 10.6 构建会导致错误 "In [..]/libZonicKRM.a, missing required architecture x86_64 in file"

iphone - iPhone用户联系信息

iphone - UITableView - 如何只显示包含数据的行

objective-c - 对于 ARC,为什么还要使用 @properties?

objective-c - 代码设计问题: "Document-level classes" in a document-based app

ios - 使用 AutoLayout 的最佳实践是什么?

iphone - 如何获取新图片,修改图片名称没有效果,还是读取旧图片

iphone - 带有本地镜像文件的 iOS WebView 远程 html