iOS UIScrollView 总是反弹回来

Posted

技术标签:

【中文标题】iOS UIScrollView 总是反弹回来【英文标题】:iOS UIScrollView always bounces back 【发布时间】:2012-11-15 21:44:56 【问题描述】:

我正在尝试制作一个基本的概念验证应用程序。它使用带有 UIImageView 的 UIScrollView。

我设置了图像,然后设置了 UIScrollView 的 contentSize,但我似乎仍然无法滚动,它总是弹回开始。有谁知道我可能会错过什么?

PS。缩放效果很好。

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view.

    [self.picture setImage:nil];
    [self.picture setImage:self.image];

    self.scroll.contentSize = self.picture.frame.size;


- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale




- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

    return self.picture;

大家好,好的,除了下面的修复之外,我已经找出了问题所在。只要我关闭情节提要中的自动布局选项,它就会起作用。

【问题讨论】:

【参考方案1】:

当您在UIImageView 上设置图像时,它的框架不会更新为新图像的大小。您需要做的是调用以下代码来更新 picture 的框架框架以匹配图像的大小。

[self.picture sizeToFit];

附带说明,在更改图像之前,您不需要在 imageView 上将图像设置为 nil。

【讨论】:

酷好吧,我刚刚添加了它,我可以看到它现在设置了所有正确的尺寸,但它仍然不滚动。我添加了以下内容,当它停在里面时,我检查了滚动的 contentSize 的值,并且内容大小设置为 320x460,这不是正确的大小。这就是为什么我认为它正在反弹,但我不知道它在哪里改变了 contentSize。 - (void)scrollViewDidScroll:(UIScrollView *)scrollView int i = 0; (如果对您的应用更有意义,您还可以将self.picture 的框架设置为其他值。) 这对于调整 uipagecontrol 的大小确实没有多大帮助,事实上甚至在旋转后也不起作用。而是更容易使用自动布局。

以上是关于iOS UIScrollView 总是反弹回来的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 内的 UIVIew 反弹回来

UIScrollView 最小比例问题

将 UIRefreshControl 添加到 UIScrollView

UIScrollView 仅在底部禁用垂直反弹

即使使用单个项目,也强制 uiscrollview 反弹滚动

对 UIScrollView 的 RTL 支持