ios - 更改 UIView 的边界原点时约束未更新
问题描述
我有一个 UIView A,其中包含另一个 UIView B(A 的子视图)。还有另一个 UIView C(UIView A 的父视图的子视图),它应用了约束,使得 UIView C 的顶部锚点与 UIView B 的底部锚点对齐,UIView C 的左锚点与 UIView 的左锚点对齐B.
现在,当我尝试更改 UIView A 的边界原点时,UIView B 的位置会更新,但 UIView C 的位置不会更改,从而导致破坏了原始约束。
我尝试执行 setNeedsLayout 和 updateConstraints,但没有任何效果。
当 UIView C 是 UIView A 的孩子时,它可以正常工作。
如何保持 UIView C 成为 UIView A 的兄弟,并在更改 UIView A 的边界原点的同时保持约束?
解决方案
首先,你有一个小错误
UIView C 的左锚点与 UIView B 的左锚点对齐。
NSLayoutConstraint *left = [myView.leftAnchor constraintEqualToAnchor:secondView.rightAnchor constant:0];
试着打电话
[self.view layoutIfNeeded];
界限改变后
推荐阅读
- node.js - 使用 export.getRandomInt = getRandomInt 导出到另一个文件时,getRandomInt 不是函数
- c - 在C中初始化指向新函数的函数指针
- node.js - 错误类型错误:无法获取 - express js
- css -
- 带有 flex、自定义项目符号图标和粗体文本的标签
- javascript - Vue响应性从另一个对象监听不起作用
- python - 有没有在 spaCy 中打印出最相似句子的功能?
- loops - 如何在机器人框架中的定位器上逐个验证单词?
- arrays - 如何在C中打印数组中重复元素的数量
- python - 在 vim 中编写 python 程序时出现语法错误
- c# - HtmlAgilityPack 搜索网站以获取数组的字符串