ios - 如何以编程方式在父容器中制作两个相同大小的 UIView
问题描述
如何通过以编程方式设置约束使两个 uiview 大小相同而不管屏幕大小?
我知道如何在情节提要上进行限制,但我正在努力学习以编程方式进行。
下面是我的故事板约束的一个例子
这是我在 viewwilllayoutsubview() 中的尝试
view.addSubview(topView)
view.addSubview(bottomView)
topView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
topView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
topView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
topView.heightAnchor.constraint(equalToConstant: view.frame.size.height / 2).isActive = true
bottomView.topAnchor.constraint(equalTo: topView.bottomAnchor).isActive = true
bottomView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
bottomView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
bottomView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
解决方案
您的代码应该可以正常工作,但是您需要将其放入viewDidLoad
其中,并为每个视图translatesAutoresizingMaskIntoConstraints
设置为false
topView.translatesAutoresizingMaskIntoConstraints = false
bottomView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
topView.topAnchor.constraint(equalTo: view.topAnchor) ,
topView.leadingAnchor.constraint(equalTo: view.leadingAnchor) ,
topView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
topView.heightAnchor.constraint(equalToConstant: view.frame.size.height / 2),
bottomView.topAnchor.constraint(equalTo: topView.bottomAnchor),
bottomView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
bottomView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
bottomView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
你也可以替换这个
topView.heightAnchor.constraint(equalToConstant: view.frame.size.height / 2)
和
topView.heightAnchor.constraint(equalTo: bottomView.heightAnchor)
推荐阅读
- c# - Razor.NET 上的导航问题
- ffmpeg - ffmpeg:在 android 上播放视频的问题
- c# - 如何从 log4net 切换到 Microsoft.Extensions.Logging 多个库
- angular - 导入谷歌地图 LatLngBounds
- javascript - 使用 Django 预览图像
- c# - Linq - 获取一个列表并按字符串值列表对其进行排序
- reactjs - Redux 状态显示为 Map,无法访问 combineReducers 属性
- php - Docker 服务 php-fpm 容器之间的 cURL 导致“连接被拒绝”
- c# - 如何从 RichTextBox C# WPF 中获取一个字符单击一个按钮并更改它的颜色
- amazon-web-services - 使用 Ansible 创建 AWS 机密