我有一个UIScrollView
,具有由返回的视图的多个级别的子视图viewForZoomingInScrollView
。在缩放期间,我希望其中一些子视图调整大小,而其他子视图不调整大小。无论我尝试什么,所有子视图都会调整大小。在子视图的超级视图上,我不想调整大小,我设置了 autoResizesSubviews = NO,并且也尝试过contentMode = UIViewContentModeCenter
。我也尝试过设置autoresizingMask
对于所有涉及的意见UIViewAutoresizingNone
。有什么想法吗?我无法重构子视图的层次结构。
UIScrollView 的缩放视图的子视图通过更改其变换而不是通过更改其边界等来“调整大小”。解决您的问题的一种简单解决方案是捕获在缩放视图上设置的变换,反转它,并将其应用到子视图,取消滚动视图应用的缩放变换。
在返回的视图中viewForZoomingInScrollView
,覆盖 -setTransform:,并遍历所有有问题的子视图并应用反向变换:
- (void)setTransform:(CGAffineTransform)transform
{
[super setTransform:transform];
CGAffineTransform invertedTransform = CGAffineTransformInvert(transform);
for (UIView *view in subviewsNotToBeResized)
{
[view setTransform:invertedTransform];
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)