Mic*_*Lee 3 iphone cocoa uiscrollview ios
我有一个UIScrollView,返回的视图的几个级别的子视图viewForZoomingInScrollView.在缩放期间,我希望其中一些子视图调整大小,而其他子视图则不调整大小.无论我尝试什么,所有子视图都会调整大小.在我希望不调整大小的子视图的超级视图中,我设置了autoResizesSubviews = NO,并且还尝试了contentMode = UIViewContentModeCenter.我也试过设置所autoresizingMask涉及的所有视图UIViewAutoresizingNone.有什么想法吗?我无法重构子视图的层次结构.
And*_*sen 15
UIScrollView缩放视图的子视图通过更改其变换来"调整大小",而不是通过更改其边界等.一个简单的解决方案是捕获在缩放视图上设置的变换,将其反转并将其应用于子视图,取消滚动视图应用的缩放变换.
在返回的视图中viewForZoomingInScrollView,覆盖-setTransform:,并遍历所有相关的子视图并应用反转变换:
- (void)setTransform:(CGAffineTransform)transform
{
[super setTransform:transform];
CGAffineTransform invertedTransform = CGAffineTransformInvert(transform);
for (UIView *view in subviewsNotToBeResized)
{
[view setTransform:invertedTransform];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2890 次 |
| 最近记录: |