gpt4 book ai didi

iphone - 保持 UIScrollView 的 subview 不调整大小?

转载 作者:可可西里 更新时间:2023-11-01 06:19:00 28 4
gpt4 key购买 nike

我有一个 UIScrollView,其中包含 viewForZoomingInScrollView 返回的 View 的多个级别的 subview 。在缩放期间,我希望其中一些 subview 调整大小,而其他 subview 不调整大小。无论我尝试什么,所有 subview 都会调整大小。在我不想调整大小的 subview 的 super View 上,我设置了 autoResizesSubviews = NO,并且还尝试了 contentMode = UIViewContentModeCenter。我还尝试将所有 View 的 autoresizingMask 设置为 UIViewAutoresizingNone。有什么想法吗?我无法重构 subview 的层次结构。

最佳答案

UIScrollView 的缩放 View 的 subview 通过改变它们的变换来“调整大小”,而不是通过改变它们的边界等。一个简单的解决你的问题的方法是捕捉在缩放 View 上设置的变换,反转它,然后应用它到 subview ,取消 ScrollView 应用的缩放变换。

viewForZoomingInScrollView 返回的 View 中,覆盖 -setTransform:,遍历所有有问题的 subview 并应用反向转换:

- (void)setTransform:(CGAffineTransform)transform 
{
[super setTransform:transform];

CGAffineTransform invertedTransform = CGAffineTransformInvert(transform);
for (UIView *view in subviewsNotToBeResized)
{
[view setTransform:invertedTransform];
}
}

关于iphone - 保持 UIScrollView 的 subview 不调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12981201/

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