gpt4 book ai didi

ios - textView 如何在不调用 setFrame 的情况下更改其框架

转载 作者:行者123 更新时间:2023-11-29 01:03:24 26 4
gpt4 key购买 nike

我目前正在调试我们的应用程序中的一个问题,UITextView 的最后几行被切断。 UITextView 位于 collectionView 单元格内,该单元格允许其自身折叠。我试图在框架更改时捕获文本隐藏的执行,所以我在 -[UITextView setFrame:] 上设置了一个符号断点,这将在设置过程中暂停很多次collectionView 的预期。

但是,当我点击最小化按钮时,textView 的框架以某种方式改变了它的原点和高度,但我从来没有接到 setFrame: 的电话(或者至少我的断点从来没有被击中。)我当我展开它时,当原点和高度再次发生变化时,也永远不会调用 setFrame:

我调用的唯一直接操作textView的代码是隐藏和取消隐藏它。隐藏后,我调用以下内容:

- (void)updateCollection {
[self.collection performBatchUpdates:nil completion:nil];
[self.amountCell updateTable];
[self.collection setNeedsLayout];
[self.collection layoutIfNeeded];
}

amountCell 与我正在处理的单元格无关,所以我认为它与此没有任何关系。不知何故,在隐藏 UITextView 和然后调用 collectionView 上的一些更新方法之间,框架发生了变化而没有实际调用 setFrame:。这怎么可能?框架还能如何被操纵?我在这里遗漏了什么明显的东西吗?

最佳答案

您可能会看到一个地方是 Collection View 的 -layoutSubviews 方法,只要框架确定需要更新布局,框架就会调用该方法,您暗示它会在您调用 -setNeedsLayout-layoutIfNeeded。它是一个经常被忽视的“隐藏”影响因素,尤其是随着 iOS 的更高版本将焦点更多地转移到 View Controller 而不是 View 。

关于ios - textView 如何在不调用 setFrame 的情况下更改其框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36725187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com