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