2013-02-05 32 views
0

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

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

当我 [self.view addSubview:[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)]];滚动视图是取代[self.view addSubview:self.contentView];,符合市场预期,空的,但至少滚动条显示,我可以滚动。我的视图在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; 

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

+0

你可以在IB中滚动吗?你也可以在代码 – JSA986

回答

1

问题是4个点,这表示“文件的所有者的观点出口设置为滚动视图”。而不是它在你的头文件中设置scrollview的出口。 而改变代码viewDidLoad中的是这样的:

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

那么它的完美的工作。

+0

嗨,什么视图应该是文件的所有者视图插座?没有它不会加载...感谢您的帮助! – Dafen

+0

你不必设置它,或者如果你想设置我们的主视图,其中包含scrollview将其设置为主视图,我已经运行它,它的工作完美。 – Dilip

+0

嘿,没有出口设置,应用程序崩溃与此错误:终止应用程序由于未捕获的异常'NSInternalInconsistencyException',原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加载了“NameDetailViewController”笔尖,但没有设置视图插座。 “ – Dafen

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)]; 

上面的代码应该肯定的工作..

+0

嗨!是的,这是有效的,但我怎么加载视图的内容在我的笔尖文件到我添加到滚动视图的视图?这里我只是添加一个空视图,对吧? – Dafen

+0

你甚至可以使用xib和创建UIView组件连接IBOutlet,然后设计UIView,而不是[self.contentView addSubView:view];你做[self.contentView addSubView:self.viewFromOutlet];所有的组件将被添加到实际的视图.. – iphonic

+0

我认为这是我以前做过的。 Nib文件包含两个视图,一个空滚动视图和一个包含我所有按钮和内容的视图。它的方式,第二个视图加载到滚动视图(巫婆连接到文件所有者视图出口)。所以显示的内容,但我不能滚动它。我希望我没有误解你的意思。 – Dafen

相关问题