我有一个带按钮的视图控制器。按下按钮时,我想添加一个包含滚动视图的子视图。现在我的代码显示子视图,只要我不添加xib就滚动。当我将xib添加到scrollview时,xib会出现在子视图中,但不再有任何滚动。
主视图控制器:
-(IBAction)startNewSearch:(id)sender {
UIScrollView *myScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 600)];
UIView *myView = [[[NSBundle mainBundle] loadNibNamed:@"NewSearch" owner:self options:nil] objectAtIndex:0];
[myScrollView setScrollEnabled:YES];
[myScrollView setContentSize:CGSizeMake(320, 600)];
[myScrollView setShowsVerticalScrollIndicator:YES];
[myScrollView setShowsHorizontalScrollIndicator:YES];
[myScrollView setPagingEnabled:NO];
[myScrollView addSubview:myView];
[self.view addSubview:myScrollView];
}
NewSearch类是一个UIView。它的xib是320宽600高。
答案 0 :(得分:1)
这是因为您的内容大小高度与帧高相同。 尝试在屏幕上使用与主视图相同的帧大小,滚动视图的内容大小应该大于高度(在您的情况下)或宽度(这取决于您需要水平或垂直滚动)。
例如
CGRect scrollFrame = CGRectMake(0, 0, [self.view bounds].size.height, self.view bounds].size.width);
UIScrollView *myScrollView = [[UIScrollView alloc]initWithFrame: scrollFrame];
...
[myScrollView setContentSize:CGSizeMake(320, **800**)];
如您所见,内容大小的高度大于滚动视图的帧高。所以它可以水平滚动。 另请参阅UIScrollView文档。
答案 1 :(得分:1)
我不确定我是否完全理解你的问题,但它可能与我所做的事情相似或不同。
看看添加它是否有效:
-(void)viewWillAppear:(BOOL)animated {
[self.myScrollView setFrame:CGRectMake(0, 0, 320, 600)];
}
很抱歉,如果这不是您正在寻找的......我也遇到了与scrollview相关的问题。祝你好运!
答案 2 :(得分:0)
当我开始使用ios8时,我遇到了类似的问题。事实证明,触摸被视图控制器链中的某些东西所困。当我开始使用presentView Controller作为包含scrollview的视图控制器时,触摸(和滚动)再次开始工作。