dug*_*gla 4 iphone uiscrollview uiview
我有一个包含UIView实例的UIScrollview实例.UIView只是UIImageView实例的水平数组的容器. - UIScrollView和UIScrollViewDelegate提供了缩放功能.我想限制缩放仅沿水平轴发生,根本没有垂直的褶皱.我该怎么做?
有没有办法,例如,子类UIView并覆盖适当的方法来防止垂直缩放?我喜欢这种方法,但我不清楚要覆盖哪种方法以及实际应该覆盖的方法.
干杯,道格
Bra*_*son 15
与我在本回答中描述的类似,您可以创建一个UIView子类并覆盖-setTransform:accessor方法来调整UIScrollView将尝试应用于您的UIView的转换.将此UIView设置为托管您的内容子视图,并使其成为UIScrollView的子视图.
在覆盖的-setTransform:中,您需要接受UIScrollView要应用的变换并进行调整,以便缩放仅在一个方向上生效.从关于如何构造CGAffineTransform矩阵的文档中,我相信以下实现应该将缩放限制为仅沿水平方向:
- (void)setTransform:(CGAffineTransform)newValue;
{
CGAffineTransform constrainedTransform = CGAffineTransformIdentity;
constrainedTransform.a = newValue.a;
[super setTransform:constrainedTransform];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3615 次 |
| 最近记录: |