我什么时候可以激活/停用布局约束?

2023-12-25

我在 IB 中设置了多组约束,并且我想根据某些状态以编程方式在它们之间切换。有一个constraintsA所有出口集合均标记为从 IB 安装,并且constraintsB出口集合全部在IB中卸载。

我可以通过编程方式在两组之间切换,如下所示:

NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)

但是……我想不通when要做到这一点。看来我应该能够做到这一点viewDidLoad,但我无法让它发挥作用。我试过打电话view.updateConstraints() and view.layoutSubviews()设置约束后,但无济于事。

我确实发现如果我设置约束viewDidLayoutSubviews一切都按预期进行。我想我想知道两件事......

  1. 为什么我会出现这种行为?
  2. 是否可以从 viewDidLoad 激活/停用约束?

我激活和停用NSLayoutConstraints in viewDidLoad,我对此没有任何问题。所以它确实有效。你的应用程序和我的应用程序之间的设置一定有所不同:-)

我只会描述我的设置 - 也许它可以给你带来启发:

  1. 我设置了@IBOutlets对于我需要激活/停用的所有约束。
  2. In the ViewController,我将约束保存到不弱的类属性中。原因是我发现在停用约束后,我无法重新激活它 - 它为零。因此,停用后似乎会被删除。
  3. 我不使用NSLayoutConstraint.deactivate/activate像你一样,我用constraint.active = YES/NO反而。
  4. 设置约束后,我调用view.layoutIfNeeded().
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我什么时候可以激活/停用布局约束? 的相关文章

  • Swift 3:如何去除UITableView屏幕截图的灰色区域

    我在从桌面视图的屏幕截图中删除灰色区域时遇到了问题 这是我尝试截图时的输出UITableView 实际上我隐藏了一些tableViewCell这是不需要的 可能这就是区域显示灰色的原因 任何帮助表示赞赏 非常感谢 Answer 我通过使用
  • UITextFieldDelegate 与 UITextField 控件事件

    如果我想处理 UITextField 的更改 例如用户在其中键入 看起来这可以通过将委托分配给该文本字段 然后让委托实现 shouldChangeCharactersInRange 来完成 或者通过将目标添加到文本字段并处理 UIContr
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • UIView 子类不会自动调整大小

    我一直在寻找有关调整大小的背景信息 但找不到太多 我知道我需要设置autoresizesSubviews在超级视图和autoresizingMask在子视图上 我已经这样做了 并且我的 UIImageViews 正确调整了大小 但我的自定义
  • 迭代 NSOrderedSet

    我正在尝试迭代 NSOrderedSet 的实例 像这样的事情 func myFunc var orderedSet NSOrderedSet array 42 43 44 for n in orderedSet NSLog i n 但是
  • 如何从代码隐藏中设置 CarouselView 的项目?

    我有一个 CarouselView 它绑定到图像的 ItemsSource 但我想通过更改 CarouselView 的索引来更改当前显示的图像 我尝试使用 CarouselView Position 作为必须选择的元素的索引 但不幸的是这
  • PresentModalViewController 不执行任何操作

    我有一个 UIViewController parent 调用presentModalViewController与另一个 UIViewController child on viewDidLoad If parent没有 UINaviga
  • 在后台任务中安排通知

    我正在为 iOS 开发一个日历 闹钟应用程序 它与网络服务器同步 当在服务器上添加活动时 会发出推送通知 以便 iOS 客户端可以获取新数据 并根据需要更新和安排下一次警报的时间 本地通知 但这仅在应用程序在客户端打开时才有效 我希望客户端
  • UISearchController 保留问题

    我正在尝试使用 UISearchController 但是我遇到了无法解决的保留问题 MainTableview 有两个部分 第1节 基于某些正则表达式过滤数据 第2节 All Data 我将 UISearchController 添加到我
  • Swift getnameinfo IPv6 结果不可靠

    我有以下扩展sockaddr extension sockaddr Indicates if this is an IPv4 address var isIPv4 Bool return sa family UInt8 AF INET In
  • 为什么我的 tableView 函数运行了 3 次?

    我有一个 UITableView 并且有执行它所需的方法之一 func tableView tableView UITableView numberOfRowsInSection section Int gt Int println sec
  • Swift 中具有透明背景的按钮边框

    我怎样才能做一个UIButton边框看起来像下图 入门 按钮一样具有透明背景吗 我应该如何使用情节提要来实现这一点 或者如何以编程方式实现这一点 设置backgroundColor to clearColor使按钮透明 例如尝试下面的代码
  • iPhone 快照,包括键盘

    我正在寻找拍摄整个 iPhone 屏幕 包括键盘 的正确方法 我找到了一些截取屏幕的代码 CGRect screenCaptureRect UIScreen mainScreen bounds UIView viewWhereYouWant
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • Xcode 9 中的“addingPercentEncoding”是否损坏?

    在 Swift 3 x 和 Xcode 9 beta 2 中 使用addingPercentEncoding https developer apple com documentation swift string 1690785 addi
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • 为什么这个 SKPhysicsJointPin 不能将这 2 个精灵保持在一起?

    我显然不太了解 SKPhysicsJoint 但是除了 Apple 文档之外 网上的信息还很少 下面的代码有什么问题 我认为应该保持头部和颈部永久连接 我的意图是它们就像两张带有大头针的纸 这样它们可以旋转一点 但不仅仅是完全分开 当我运行
  • ActionScript、NetStream.Play.Failed iOS AIR 移动设备

    我正在尝试以类似于 Tiberiu Ionu Stan http stackoverflow com questions 2036107 aac mp4 not working in actionscript 3s netstream 的方

随机推荐

  • Javascript:按三个值对对象数组进行排序

    我有一个对象数组 我想使用 sort 函数对其进行排序 它应按三个值排序 首先按第一个值排序 然后按第二个值排序 最后按第三个值排序 我尝试过类似以下的方法 但它似乎无法正常工作 myArray sort function a b if a
  • Chart.js 闪烁

    谁能告诉我为什么我的 Chart js 图表闪烁 请参阅此截屏视频 https www screencast com t J8demDuX https www screencast com t J8demDuX 视频中看起来很慢 但实际上变
  • 将一个命令的输出作为另一个命令的输入进行管道传输[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有以下任务 编写一个 C 程序来读
  • Flutter:调试集成测试

    我正在学习 Flutter 并使用 Android Studio 作为我的 IDE 并且在集成测试方面遇到了一些痛点 作为学习过程的一部分 我编写了一个基本的集成测试 此集成测试的目的是检查图像小部件 通过 Image Asset 创建 以
  • 获取 Google 云端硬盘授权时遇到问题

    我有一个 Android 应用程序 我正在尝试 重新 实现 Google 云端硬盘访问权限 我遵循的方法是 Google 更新 REST API 的迁移指南here https github com gsuitedevs android s
  • 来自另一个类的 getter/setter 的 MethodHandle 给出 NoSuchFieldError

    假设我有简单的javabeanMyPerson with a name获取器和设置器 public class MyPerson private String name public String getName return name p
  • 无法读取 maven-resources-plugin 的工件描述符

    Stage 我正在尝试在 Eclipse 中编译 Maven 项目 Spring Tool Suite 版本 3 2 0 RELEASE 每个项目编译都会抛出这个 Could not calculate build plan Plugin
  • 如何区分不同类型的 Perl 测试,这样我就不必运行所有测试?

    我注意到 Perl 中的习惯是将所有测试放入t目录 如何将单元测试与功能测试分开 或者 为了使问题更简单 更明显 如何将快速运行的测试与运行速度慢的测试分开 当所有测试一起运行时 测试花费的时间太长 无法在开发中常规使用 这是遗憾的 我想我
  • Metro APP - BitmapImage 到 Byte[] 或从 Web 下载图像并将其转换为 Byte[] 数组

    有没有办法将 BitmapImage Windows UI Xaml Media BitmapImage 转换为 Byte 数组 我没有尝试过任何工作 另一种可能的情况 如果 BitmapImage 无法转换为字节数组 是从网络下载图像 然
  • 角度目录光滑执行

    我正在使用以下插件 http vasyabigi github io angular slick http vasyabigi github io angular slick 我也在使用 ng repeat 所以我发现它在 ng repea
  • 在宏中使用“else”

    我看过下面的代码 define QL REQUIRE condition message if condition std ostringstream ql msg stream ql msg stream lt lt message th
  • 如何以编程方式指定replyUrlsWithType

    我想设置replyUrlsWithType以编程方式在应用程序上manifest https learn microsoft com en us azure active directory develop reference app ma
  • Eclipse 在调试 java 时跳过断点

    我使用 Eclipse 已经很多年了 并且一直使用调试器 但最近我知道它可以在调试时跳过断点 我什至已经在 println 上设置了一个断点 我会看到文本出来 但不会到达断点 另外 有时我会在代码的一个区域一致地遇到断点 但在其他区域却不会
  • default(Type) 的编程等效项

    我正在使用反射来循环Type的属性并将某些类型设置为其默认值 现在 我可以切换类型并设置default Type 明确地 但我宁愿在一行中完成 是否存在与默认值等效的编程方式 如果是值类型使用激活器 CreateInstance http
  • SET NOCOUNT ON 使用情况

    灵感来自这个问题 https stackoverflow com questions 1483383 is this stored procedure thread safe or whatever the equiv is on sql
  • 如果数据包含撇号,如何插入?

    实际上 我的任务是使用 C 将 csv 文件加载到 sql server 中 所以我用逗号将其拆分 我的问题是某些字段的数据包含撇号 并且我正在触发插入查询以将数据加载到 sql 中 所以它给出了我的编码错误 using System us
  • 如何按列对文本文件进行排序并保持原始顺序

    我有一个非常大的数据文件 有 15 列 我需要根据特定列 例如第 11 列 对所有行进行排序 我在 Linux 中使用以下命令 sort k11 d myfile txt gt sortedfile 问题是排序命令不保留文件的原始顺序 例如
  • FILTER_VALIDATE 与 Preg_match。使用哪一个?

    要验证输入日期 无论是表单 URL 还是表单 您通常使用哪种技术 我一直在看PHP 过滤器 http www w3schools com php php ref filter asp但我很少在任何代码上看到它们 我平时见过preg mach
  • PHP大量内存用于SQL查询

    我在优化 Apache PHP 内存使用时偶然发现了一个奇怪的问题 基本上 当尝试绑定 MySQLi 查询的结果时 代码会崩溃 并显示错误消息 致命错误 允许的内存大小 16777216 字节耗尽 试图分配 50331646 字节 相关表格
  • 我什么时候可以激活/停用布局约束?

    我在 IB 中设置了多组约束 并且我想根据某些状态以编程方式在它们之间切换 有一个constraintsA所有出口集合均标记为从 IB 安装 并且constraintsB出口集合全部在IB中卸载 我可以通过编程方式在两组之间切换 如下所示