我想知道是否可以在viewwillrappent方法中为uiscrollview设置contentoffset。
-(void) viewWillAppear:(BOOL)animated{
[self.scrollView setContentOffset:CGPointMake(320, 0) animated:YES];
NSLog(@"CALLED");
}
我可以看到视图将显示为正在运行,但不幸的是,它没有设置偏移。
感谢
您应该在尝试设置偏移量之前调用[super viewWillAppear:animated];
。
但是,您可能试图在视图生命周期中过早地设置偏移。
覆盖-(void)viewDidLayoutSubviews;
并在那里设置偏移量可能是好的。
因为到那时,您的视图的框架都应该被适当地设置。(记得也在那里调用super
)
我有一个更好的选择:
您可以手动设置布局:,而不是覆盖viewDidLayoutSubviews
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
view.layoutIfNeeded()
// Do something here
}
通过这种方式,您可以获得一个新的布局,该布局应符合您的期望
我已经用您的scrollView的contentSize&视图中的contentOffset WillAppear。它对我来说运行良好。因此,请检查您的滚动视图对象是否正确绑定到您的滚动视图。