ios - 宽度 >= 和 <= 时 UITableView 的模糊约束
问题描述
尝试将表格视图宽度设置在 290 到 460 点之间。它足以为小屏幕制作内容,并且对于 iPad Pro 等大屏幕看起来也不错。我也想有前导和尾随空间> = 20。
今天是我尝试修复“不等式约束歧义”的第二天......感谢您的帮助!
我是 iOS 开发的新手,所以请不要踢我太多:)
解决方案
如果我正确理解您的目标,您希望您的表格视图是:
- 20 分领先和落后
- 除非这会使表格视图的宽度超过 460 点
- 在这种情况下,表格视图应该水平居中
所以,回顾一下我的评论......你的约束说:
- 水平居中表格视图
- 使领先和落后
>=
20 分 - 使宽度介于
290
和460
问题是您还没有告诉自动布局之间的位置,290
并且460
您希望宽度结束。
所以,你需要更多的约束。
开始简单... tableView 约束 20 分顶部/前导/尾随和零分底部(当然,全部到安全区域):
接下来,添加第二组20 磅的前导和尾随约束:
现在将一对设置为>=
,并为另一对设置低于要求的优先级:
前导/尾随约束对的Default High 750
优先级=
告诉自动布局“尝试将边从边缘拉到 20 点,但如果冲突的约束具有更高的优先级,则允许它中断”,并且Required 1000
优先级>=
对每边至少给我们20分。
如果我们切换到横向(iPhone 11),一切看起来都一样...... 20 分顶部/前导/尾随和零分底部:
但是......你的目标是最大宽度460
,所以让我们添加一个宽度约束<= 460
:
我们看到约束的红色问题,因为我们仍然没有提供足够的自动布局信息 - 所以,我们将添加一个水平中心约束:
以下是它在 9.7 英寸 iPad 上的外观:
我们不需要——也不想要——>= 290
宽度约束。= 20
约束将处理这个问题。而且,虽然现在不太可能,但如果您的应用程序最终在 iPhone 4s 或第一代 SE 上运行,则视图宽度仅为320
……290 + 20 + 20 == 330
并且您会遇到约束冲突。
推荐阅读
- python - 从多索引问题中去除空格 - 我的代码还删除了索引名称
- python - If the user inputs a position over 5. It is supposed to print `The account number not found`
- kubernetes - Kubernetes 无法访问从节点的 pod
- node.js - 如何在 gulp 任务上创建一个空文件?
- mysql - 当我尝试查询数据数组时,节点中的 MariaDB SQL 抛出 ER_PARSE_ERROR
- c - 使用 printf 在 yacc 中打印字符串文字标记会导致分段错误
- excel - VBA查找方法不返回实际上存在于工作表中的值
- javascript - 使用来自 aysnc Javascript http 请求的数据?(AWS 无服务器)
- python - 如何在嵌套函数中共享函数变量?
- azure - Azure 搜索索引器以 0/0 个文档成功