我在一个水平滚动的视图中创建了几个滚动视图。以下代码工作正常:
-(void)updateSection {
builder = [NSMutableArray array];
float xPosition = 0;
float xposbut = 100;
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 100, self.frame.size.width, self.frame.size.height - 69)];
scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
scrollView.delegate = self;
[self addSubview:scrollView];
for (int i = 1; i < itemArticleArray.count; i++) {
ItemView *item = [ItemView loadNibs];
item.frame = CGRectMake(xposbut, 10, item.frame.size.width, item.frame.size.height);
xPosition += scrollView.frame.size.width + 2;
xposbut += 500;
UIView *seperatorView = [[UIView alloc] initWithFrame:CGRectMake(xposbut - 50, 4, 2, scrollView.frame.size.height - 8)];
[scrollView addSubview:seperatorView];
xPosition += scrollView.frame.size.width + 4;
[scrollView addSubview: item];
[builder addObject:item];
}
[scrollView setContentSize:CGSizeMake(xposbut, scrollView.frame.size.height)];
[self addSubview:scrollView];
}
但是,当我将第8行代码更改为以下内容时:
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 400, self.frame.size.width, self.frame.size.height - 69)];
它使布局看起来很好,但滚动视图确实不会滚动。有什么想法吗?
答案 0 :(得分:3)
您将contentSize.height
设置为scrollView.frame.size.height
,因此scrollView
无法滚动。您必须将contentSize
设置为scrollView
的总高度,包括不可见区域。框架只是屏幕上的区域。
答案 1 :(得分:0)
设置滚动视图的内容大小。内容大小应大于frame.size,然后只滚动滚动视图。并且还可以滚动。
使用代码
scrollView.scrollEnabled=YES;
scrollView.contentSize=CGSizeMake(CGFloat width, CGFloat height);
高度应大于scrollView.frame.size.height,并在scrollview框架内添加scrollview内的内容。
答案 2 :(得分:0)
UIScrollview
将滚动。在您的代码中,您将内容大小设置为帧大小,这就是滚动视图不滚动的原因。
答案 3 :(得分:0)
您必须为滚动提供一些工作空间,因此请查看:
.m
文件中必须粘贴这些行代码:
(void)viewDidLoad {
[super viewDidLoad];
yourScroll.scrollEnabled=YES;
yourScroll.contentSize=CGSizeMake(self.view.frame.size.width, self.view.frame.size.height*2);
}
/*
* yourScroll.contentSize=CGSizeMake(your desired scroll width, your desired scroll height);
* The values must be bigger than the viewController size
*/