Ios UIScrollView不滚动

Ios UIScrollView不滚动,ios,ios7,uiscrollview,uiscrollviewdelegate,Ios,Ios7,Uiscrollview,Uiscrollviewdelegate,我有一个根本不滚动的UIScrollView。如果启用“反弹”,我可以滚动到足够远的侧面,以查看视图之外的内容,但在我释放时,它会捕捉回原点。我已经打开了分页,但是如果我关闭它,我会得到相同的行为。 我已关闭自动布局。 在IB中,scrollView位于MainViewController中,正确链接到IBOutlet,如下所示 @interface MainViewController () @property (strong, nonatomic) IBOutlet UIScrollVie

我有一个根本不滚动的UIScrollView。如果启用“反弹”,我可以滚动到足够远的侧面,以查看视图之外的内容,但在我释放时,它会捕捉回原点。我已经打开了分页,但是如果我关闭它,我会得到相同的行为。 我已关闭自动布局。 在IB中,scrollView位于MainViewController中,正确链接到IBOutlet,如下所示

@interface MainViewController ()

@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;

@end

@implementation MainViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    for (int i = 0; i < 3; i++) {
        CGRect frame;
        frame.origin.x = self.scrollView.frame.size.width * i;
        frame.origin.y = 0;
        frame.size = self.scrollView.frame.size;

        // I might be doing this wrong, but it returns a PosterView object just like I want it to.
        NSArray *view = [[NSBundle mainBundle] loadNibNamed:@"posterView" owner:self options:nil];
        [[view objectAtIndex:0] setFrame:frame];

        [self.scrollView addSubview:[view objectAtIndex:0]];
    }

    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * 3, self.scrollView.frame.size.height);
}

我尝试过实现
UIScrollViewDelegate
并重写
scrollViewDidScroll
,但从未调用过它(除非我像前面提到的那样启用了反弹)。

UIScrollView
只有当
contentSize
大于其帧大小时才会滚动。如果它不滚动,可能意味着它的
contentSize
不够大。因此,在设置它之后,检查它的
contentSize
是什么


如果
contentSize
与您期望的一致,则检查scrollView是否为
scrollEnabled
。有时启用“反弹”会给人留下滚动正在工作的印象。此外,如果未启用滚动,则在这种情况下设置
contentOffset
也会起作用,因为它会根据作为参数提供的大小移动内容。

您应该在
viewdilayoutsubviews
内设置
contentSize
。它在视图生命周期中已经足够晚了,因此无法通过任何其他方法重置,并且不需要您检查视图是否第一次滚动。

contentSize.width是960,而帧显然是320,所以这不应该是问题所在。。在IB中将滚动设置为enabled,尝试在代码中执行此操作,但未成功!您提供的代码看起来不错。内容大小始终保持(3*320480)?或者重新设置一些你是对的,它会在viewDidLoad之后重新设置!通过在第一次尝试滚动时设置contentSize,它现在可以工作了!谢谢。+1这是唯一对我有效的解决方案。您还必须将scrollView作为控制器视图的子视图(scrollView不能直接作为控制器视图)。奇怪的是…约束导致我的contentSize在viewDidLoad中被覆盖,但为什么约束会影响contentSize呢?有时候我真的很讨厌约束。
-(void)scrollToPage:(NSInteger)page{
    float pageWidth = [self.scrollView frame].size.width;
    [self.scrollView setContentOffset:CGPointMake(page*pageWidth,0) animated:YES];
}