我在使用 UIScrollView.i 时遇到了一些问题,我创建了它,设置了一些属性,并使用主视图指向此 UIScrollView.请参阅:
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]。但是这样我就无法滚动我的视图,我不知道为什么。
怎么解决?
如果 ScrollView 的框架大于或等于内容大小,则不会滚动。您的滚动视图高度等于滚动视图内容大小,我认为这就是问题所在。使框架等于 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];
您应该替换该行
self.view = scrollScreenView;
对于生产线
[自我视图添加子视图:滚动屏幕视图]
自动布局在视图加载后设置一些约束,因此,只需将内容大小放在viewDidAppear,并且您的代码不会被重写。
这对我有用。
-(void)viewDidAppear:(BOOL)animated{
[self.scrollView setContentSize:CGSizeMake(320, 1000)];
}
对不起,我的英语很差。