当前位置: 首页 > 知识库问答 >
问题:

暂时删除NSLayoutConstraint?

贝滨海
2023-03-14

我有一个使用AutoLayout布局的UITableViewCell子类,我想要一个图像视图转换、增长一点并收缩回来的小动画。

目前,由于限制,图像右侧的标签也在移动(应该如此)。

我想用一种简单快捷的方式暂时说“在动画运行时,将这些标签保留在当前位置”。这是我不需要删除和重新添加这些约束就可以做到的吗?这很麻烦吗?

共有2个答案

冯德佑
2023-03-14

没有API说“将这些视图留在此处”,暂时禁用自动布局的某些部分。有几种可能的解决方案:

  • 在动画期间删除您的约束
  • 以不同的方式安排约束(例如,将它们设置为图像视图的超级视图,或者使它们仅依赖于图像视图的中心)
  • [Super layoutSubview]中运行autolayout后,覆盖容器视图的layoutSubview以将标签贴回您想要的位置(或删除图像视图的转换,运行autolayout然后放回原处)
  • 对您的图像视图进行子类化并覆盖frameFor校正Rect:校正RectForFrame:以获取自动布局以使用未转换的帧进行对齐。

此处的答案中提供了更多详细信息和建议,这是一个类似的问题,即如何使变换和自动布局一起发挥作用:当使用自动布局时,如何调整CALayer的定位点?

邓才
2023-03-14

从iOS 8开始,现在有一个活动属性,可以更改myConstraint。激活=否 。这将删除该约束,同时将该值设置为“是”将[重新]添加该约束:

激活或停用约束会在视图上调用addConstraint:和removeConstraint:,该视图是此约束管理的项的最接近的公共祖先。使用此属性,而不是直接调用addConstraint或removeConstraint。来源

此外,还有两个新的类方法activateConstraint和deactivateConstraint,它们接受一系列约束(NSArray

<代码>[NSLayoutConstraint停用约束:myConstraints]

 类似资料:
  • 使用指南 - 账户管理 - 站点管理 - 站点的暂停与删除 在管理->网站列表中,站点的右侧“更多设置”处可以对指定站点进行暂停数据统计、以及删除站点操作。 暂停数据统计 暂停后,百度统计将不会再收集站点的数据产出分析报表,直至重新启用。 删除站点 如果删除了站点,该网站的所有历史数据将被清空且无法恢复,请您谨慎操作! 如果有汇总网站包含该网站,则相关的汇总网站的数据也会变化。

  • 几个月前,我在谷歌游戏中发布了一个应用程序。该应用程序有一些下载和数据从控制台谷歌用户。我将发布一个新版本,但是当我完成的时候,我想暂时删除它——保留所有的数据和下载号码。有没有可能或者当我取消发布时,所有数据都将被删除?

  • 我有一个带有几个适配器的网状管道,其中很少一部分应该只对第一个到达的消息起作用。这意味着在处理完消息后,我要将其向前传递,然后将适配器从管道中移除。我尝试了以下两种方法:1。Super.ChannelRead(ctx,msg);然后CTX.Pipeline().remove(this);2.ctx.pipeline().remove(this);然后是super.channelread(ctx,m

  • Im使用JPA、MySQL和Spring boot 我一辈子都搞不清楚如何应用级联,文档似乎没有应用我的意图: 例如。https://hellokoding.com/deleting-data-with-jpa-hibernate/使用CascadeType。ALL或CascadeType。删除父实体时,删除子实体的REMOVE属性。它们可以在@OneToOne、@OneTo很多、@ManyToO

  • 我需要删除活动onPause事件上的Google地图片段,并将其添加回Resume事件。我该怎么做? 因此这个后退按钮非常慢 需要它为Android性能问题-TabHost-定时器-设置货币标签()-谷歌地图API V2 编辑: 事实上我做到了。但是仍然有延迟问题。如何在后堆栈停止/关闭意图? 编辑: 另外,我现在正试图删除和添加回片段,请看这个-

  • 删除父实体时,我还想删除关联的子实体(从数据库中)。我试图在删除时使用级联,如下所示,但我一定做错了什么。 当对父实体对象调用删除时,我收到错误消息:“该实体仍在数据库的其他地方引用”。我可以确认该实体在数据库的其他地方引用的唯一地方是在下面的两个表中(如果我手动从数据库中删除子行,对父实体对象的删除调用工作正常)。在过去的9个小时里,我一直在阅读实体对象并尝试不同的东西。我做错了什么? 这是我的