添加视图时,UIScrollView不会滚动

时间:2013-02-05 11:30:47

标签: ios uiview uiscrollview scroll interface-builder

我想在IB中构建一个大视图,然后将其添加到我的滚动视图中。为此,我遵循了these instructions

我的视图在滚动视图中正确绘制,但无法滚动。我记录了内容大小并且一切正确:Content view size: 320.000000 x 714.000000

当我用[self.view addSubview:self.contentView];替换时 [self.view addSubview:[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)]];滚动视图正如预期的那样是空的,但至少显示了滚动条,我可以滚动。我在nib文件中的视图有问题吗?

这是我的viewDidLoad

[super viewDidLoad];
[self.navigationController setToolbarHidden:YES animated:YES];

NSLog(
    @"Content view size: %f x %f",
    _contentView.frame.size.width,
    _contentView.frame.size.height);
[self.view addSubview:self.contentView];
((UIScrollView *)self.view).contentSize = self.contentView.frame.size;

我的代码唯一的区别是,我在导航控制器中有滚动视图。这有什么不同吗?

2 个答案:

答案 0 :(得分:1)

问题出在第4点,即“将文件所有者的视图出口设置为滚动视图”。而不是在头文件中设置scrollview的出口。 并改变viewDidLoad的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [scrollview addSubview:self.contentView];
    scrollview.contentSize = self.contentView.frame.size;
}

然后它的工作完美。

答案 1 :(得分:0)

应该如下所示

//Considering self.contentView as UIScrollView added in xib
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0,0,320,700)];
[self.contentView addSubView:view];
[self.contentView setContentSize:CGSizeMake(320,700)];

以上代码应该可以肯定..