ios - iOS 自定义 UIView 在 iphone xr 和 iphone 7 中有不同的布局
问题描述
我遇到了自定义 UIView 的自动布局问题,它在 iphone XR 中正确呈现为
并在情节提要中设置只有一个视图控制器(UI),没有指定的 UIViewController 类,为简化起见,我只想调试视图,所以我不将任何视图控制器类与其关联。
ps 安全区域已被使用
和自定义类 UI(FilterView) 设置: 和自定义类 UI(FilterView) 代码:
override init(frame: CGRect){
super.init(frame: frame)
setUpView()
}
//for IB
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setUpView()
}
private func setUpView(){
Bundle.main.loadNibNamed(Constants.NIB_FILTER_VIEW_NAME, owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
contentView.autoresizingMask = []
contentView.translatesAutoresizingMaskIntoConstraints = true
}
有谁知道这里发生了什么?
解决方案
您不应该以这种方式创建 X 按钮和“排序依据”标签。您正在做的是复制 UINavigationController 所做的事情。如果您想要该布局,请将您的视图控制器放在 UINavigationController 中,这样添加 X 和“排序依据”标签会容易得多。
同样通过这样做,您可以添加一个rightBarItem
作为您的“重置”按钮。同样,您不必将其布置出来。UINavigationController 为您完成所有这些工作。
推荐阅读
- sql - 在 oracle 中旋转和排序多个列
- python - 并行化功能不当
- javascript - ... 已将数组作为参数的展开运算符
- azure - Azure 逻辑应用:Azure VM 连接器 - InvalidAuthenticationTokenTenant
- node.js - 异步函数中的电子给出错误
- java - 我可以在 protobuf 文件中使用 java 类吗?
- javascript - 我试图让用户的浏览器“记住”他们上次访问页面时打开了可折叠菜单的哪个部分,然后重新打开它
- ocaml - 如何为多态对象类型定义抽象(不透明)接口?
- ios - 'SwiftEntryPlugin' 的无效重新声明
- python - 使用 CNN 进行语义分割的训练数据维度