0

我在使用 UIScrollView 时遇到了一些问题。我创建了它,设置了一些属性,并使用主视图指向这个 UIScrollView.See:

scrollWidth = 320.0;
scrollHeight = 410 * listRegisterPeople.count;
scrollScreenView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, scrollWidth,    scrollHeight)];
[scrollScreenView setScrollEnabled:YES];
[scrollScreenView setContentSize:CGSizeMake(scrollWidth, 410 * list.count)];
[scrollScreenView setShowsVerticalScrollIndicator:YES];
[scrollScreenView setShowsHorizontalScrollIndicator:YES];
[scrollScreenView setPagingEnabled:NO];
scrollScreenView.delegate = self;
[scrollScreenView setContentOffset:CGPointMake(0, 0)];
self.view = scrollScreenView;

但我想将 scrollScreenView 添加为子视图 [self.view addSubview:scrollScreenView]。但是通过这种方式,我无法滚动我的视图,我不知道为什么。. .

如何解决?

4

3 回答 3

1

如果 ScrollView 的框架大于或等于内容大小,则不会滚动。您的滚动视图高度等于滚动视图 contentSize ,我认为这是问题所在。使框架等于 self.view 并设置内容大小如下:尝试以下。

scrollWidth = 320.0;
scrollHeight = 410 * listRegisterPeople.count;
scrollScreenView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320,self.view.frame.size.height)];
[scrollScreenView setScrollEnabled:YES];
[scrollScreenView setContentSize:CGSizeMake(scrollWidth, scrollHeight)];
[scrollScreenView setShowsVerticalScrollIndicator:YES];
[scrollScreenView setShowsHorizontalScrollIndicator:YES];
[scrollScreenView setPagingEnabled:NO];
scrollScreenView.delegate = self;
[scrollScreenView setContentOffset:CGPointMake(0, 0)];
[self.view addSubview:scrollScreenView];
于 2012-10-03T12:57:02.857 回答
0

我认为你应该更换线路

self.view = 滚动屏幕视图;

为线

[self.view addSubview:scrollScreenView]

于 2012-10-03T12:54:11.270 回答
0

Autolayout 在视图加载后设置了一些约束,因此,只需将您的内容大小放在 viewDidAppear 中,您的代码就不会被重写。

这对我有用。

-(void)viewDidAppear:(BOOL)animated{
  [self.scrollView setContentSize:CGSizeMake(320, 1000)];
}

并为我糟糕的英语感到抱歉。

于 2013-03-29T17:51:01.550 回答