UIScrollView在viewwillappear中设置contentoffset不起作用

Asi*_*gir 4 objective-c uiscrollview ios

我想知道是否可以在viewwillappear方法中为uiscrollview设置contentoffset.

-(void) viewWillAppear:(BOOL)animated{

    [self.scrollView setContentOffset:CGPointMake(320, 0) animated:YES];
    NSLog(@"CALLED");    
}
Run Code Online (Sandbox Code Playgroud)

我可以看到viewwillappear正在运行,但不幸的是它没有设置偏移量.

谢谢

Nic*_*ick 16

你应该[super viewWillAppear:animated];在尝试设置偏移之前调用.

但是,您可能尝试在视图生命周期中过早设置偏移量.

覆盖可能是好的-(void)viewDidLayoutSubviews;,并在那里设置偏移量.

因为你的视图的框架应该在那个时候适当地设置.(还记得在super那里打电话)

  • 请注意,可以多次调用viewDidLayoutSubviews,这可能会在不需要时触发contentOffset的设置。如果您选择此路线,则需要跟踪视图的状态。 (2认同)