即使设置contentSize,UIScrollView也不会滚动

时间:2014-09-23 16:28:02

标签: ios objective-c iphone uiscrollview

我的UIScrollView没有滚动。 (我试图让它水平滚动)我将contentSize设置为(960,300)。我已经在故事板中将UIScrollView的框架大小设置为width:320 height:300

我在滚动视图中有一个容器视图,其宽度为960 points

在320分,我有一个背景颜色为棕色的子视图。当我滚动时,我可以看到棕色的子视图,但是当我放开拖动时它会反弹回来。

这是我的viewDidLoad方法:

- (void)viewDidLoad
    [super viewDidLoad];
    self.scrollView.scrollEnabled = YES;

    [self.scrollView setFrame:CGRectMake(0,0,320,300)];
    self.scrollView.contentSize = CGSizeMake(960, 300);

    UIView *subview1 = [[UIView alloc] initWithFrame:CGRectMake(320, 0, 320, 300)];
    [subview1 setBackgroundColor:[UIColor brownColor]];

    UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 960, 300)];
    [containerView addSubview:subview1];

    [self.scrollView addSubview:containerView];
}

2 个答案:

答案 0 :(得分:1)

以下是以编程方式创建滚动视图的示例代码:

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];
scrollView.backgroundColor = [UIColor redColor];
scrollView.scrollEnabled = YES;
scrollView.contentSize = CGSizeMake(960, 300);
[self.view addSubview:scrollView];

UIView *subview1 = [[UIView alloc] initWithFrame:CGRectMake(320, 0, 320, 300)];
[subview1 setBackgroundColor:[UIColor brownColor]];

UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 960, 300)];
containerView.backgroundColor = [UIColor greenColor];
[containerView addSubview:subview1];

[scrollView addSubview:containerView];

因此,您的代码中没有问题,但故事板配置有问题。

答案 1 :(得分:0)

我对你想要完成的事情有一些想法。我不知道你的代码有多久了,但今天我们有更好的方法来处理scrollview,而且它们不包括设置内在大小或名声。

好吧,尽管我对代码的目标有疑问,但我尝试在这里运行它,使用storyboard,单个视图,默认配置的scrollView,实验进展顺利,你的代码实际上有效,我想也许你有一些你的scrollView有问题。我知道这听起来很奇怪,但你检查过scrollView是否具有属性" Scrolling Enabled"检查?

如果您可以向我提供有关此问题的更多信息,我可以帮助您。