我以编程方式添加了一个滚动条,但由于某种原因它不会从头开始。
self.backgroundColor = [UIColor redColor];
self.scrollView = [[UIScrollView alloc]initWithFrame:self.frame];
self.scrollView.backgroundColor = [UIColor greenColor];
[self addSubview:self.scrollView];
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, self.scrollView.frame.size.height);
以下是一些日志:
NSLog(@"contentOffset - %@",NSStringFromCGPoint(self.scrollView.contentOffset));
NSLog(@"contentSize - %@",NSStringFromCGSize(self.scrollView.contentSize));
NSLog(@"contentInset - %@",NSStringFromUIEdgeInsets(self.scrollView.contentInset));
NSLog(@"frame - %@",NSStringFromCGRect(self.scrollView.frame));
2014-03-20 12:53:56.356 contentOffset - {0, 0}
2014-03-20 12:53:56.357 contentSize - {320, 423}
2014-03-20 12:53:56.357 contentInset - {0, 0, 0, 0}
2014-03-20 12:53:56.358 frame - {{0, 156}, {320, 423}}
2014-03-20 12:53:56.360 contentOffset - {0, 0}
2014-03-20 12:53:56.360 contentSize - {320, 423}
2014-03-20 12:53:56.361 contentInset - {0, 0, 0, 0}
2014-03-20 12:53:56.361 frame - {{0, 156}, {320, 423}}
答案 0 :(得分:0)
我猜这个:
self.scrollView = [[UIScrollView alloc]initWithFrame:self.frame];
应该是:
self.scrollView = [[UIScrollView alloc]initWithFrame:self.bounds];
请注意您的打印输出如何:frame - {{0, 156}, {320, 423}}
这意味着您的滚动视图不会从顶部开始,从156px
self.bounds
将始终包含{{0, 0}, {<view-width>, <view-height>}}
答案 1 :(得分:0)
您的父控制器的框架可能不正确,只需使用
进行检查即可NSLog(@"%@", NSStringFromCGRect(self.frame));
看看控制台中显示的是什么?
如果不正确,请手动设置scrollView的框架,
self.scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0,0, 320, self.frame.size.height)];
答案 2 :(得分:0)
而不是self.frame
尝试self.bounds
。
帧是相对于superview的位置。但是界限从(0,0)
开始