我有一个带有文本字段和UIImageView的UIScrollView。我试图让它垂直滚动(支持设备旋转到横向v。肖像)但不管我做什么,它只是水平滚动而不是垂直滚动,我不知道为什么。
我已经阅读了很多关于autolayout和scrollview的内容,所以我认为这可能是一个自动布局问题。但是,我已经配置了autolayout来处理旋转开关到横向,所以我想保持它。子视图通过故事板添加到滚动视图中。
我也常常对scrollView的contentSize感到困惑。这应该大于文档中的屏幕尺寸吗?我还看到了一个stackoverflow问题,其中应该与屏幕相同的大小让我困惑。
- (void)viewDidLoad
{
[super viewDidLoad];
[self.scrollView setDelegate:self];
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height+400);
}
-(void)orientationChanged:(NSNotification *)notification{
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height+400);
}
答案 0 :(得分:0)
scrollView的滚动方向将由contentSize
与scrollView框架的关系决定。 contentSize
是容器的大小,它包含所有scrollView的子视图(scrollView实际上是一个窗口进入的容器)。
首先,将scrollView.frame
设置为您想要的任何内容。
其次,将您的图像(或任何其他内容)添加到scrollView。确保图像高度为< = scrollView.frame.size.height
以确保仅水平滚动。 (据我所知,UIScrollView
没有方向锁。)ContentSize应该自动设置,但你也可以直接设置,如:
[scrollView setContentSize:(CGSize){scrollView.size.height, someLargeWidth}];
您不需要在轮换时重新设置contentSize。您可以在轮换时明确设置scrollView.frame
,也可以使用autoresizingMask或使用autoLayout。