【问题标题】:Setting UIImage transform affects UIScrollView设置 UIImage 变换会影响 UIScrollView
【发布时间】:2014-05-30 08:08:01
【问题描述】:

我的目标是创建一个 UIImage,当我在 UIScrollView 中滚动时它会自动缩放。这工作得很好,但是一旦我的图像的比例设置为 .6 之类的东西,您就无法再在 UIScrollView 中滚动(即使您将缩放重置为 1 或 0.5 或/并重新分配内容大小滚动视图)。这很奇怪,因为将缩放设置为 1、.75、.5 或 .25 不会影响滚动视图(即它可以正常工作)。我使用transform 而不是设置帧大小,因为我希望图像由自动布局居中。有没有更好的方法来缩放图像而不接触frame?为什么设置图像的缩放比例会影响滚动视图?

这是我用于调整图像大小的代码:

- (void)scrollViewDidScroll:(UIScrollView *)sender {
    CGFloat pageWidth = sideScroller.frame.size.width;
    CGFloat scrollOffset = sideScroller.contentOffset.x;

    float fractionalPage = scrollOffset / pageWidth;
    NSInteger page = lround(fractionalPage);

    [pageControl setCurrentPage:page];

    if (scrollOffset > pageWidth)
        scrollOffset = (pageWidth * 2) - scrollOffset;

    float logoSize = 1 - ((scrollOffset / pageWidth) / 2);

    logo.transform = CGAffineTransformMakeScale(logoSize, logoSize);
}

【问题讨论】:

    标签: ios objective-c uiscrollview transform


    【解决方案1】:

    只是猜测,但滚动视图内内容的内容大小并没有因为转换而改变。请尝试按帧缩放。

    【讨论】:

    • 感谢您的回答!按帧缩放有效(我之前已经测试过)但自动约束不起作用。我只是不明白为什么在此滚动视图之外缩放图像会对滚动视图本身产生影响。是否有另一种方法可以在所有约束都起作用的情况下缩放某些东西?
    • 也许一种解决方法是在滚动时也设置 contentSize。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多