UIScrollView在viewwillappear中设置contentoffset不起作用
我想知道是否可以在viewwillappear方法中为uiscrollview设置contentoffset。
-(void) viewWillAppear:(BOOL)animated{ [self.scrollView setContentOffset:CGPointMake(320, 0) animated:YES]; NSLog(@"CALLED"); }
我可以看到viewwillappear正在运行,但不幸的是它没有设置偏移量。
谢谢
你应该调用[super viewWillAppear:animated];
在尝试设置偏移之前。
但是,您可能尝试在视图生命周期中过早设置偏移量。
覆盖-(void)viewDidLayoutSubviews;
可能是好事-(void)viewDidLayoutSubviews;
,并在那里设置偏移量。
因为你的视图的框架应该在那个时候适当地设置。 (记得在那里打super
)
我已在viewWillAppear中使用scrollView的contentSize和contentOffset进行了测试。 它对我很好。 因此,请检查天气,您的scrollView对象是否正确绑定到您的scrollView 。
我有一个应该更好的替代选项:
您可以手动设置布局,而不是覆盖viewDidLayoutSubviews
:
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) view.layoutIfNeeded() // Do something here }
这样您就可以获得符合您期望的全新布局