Pet*_*obs 57 cocoa-touch storyboard uiscrollview ios
我有一个UIViewController
子类作为故事板中的一个场景,其中包含一个UIScrollView
包含各种子视图的场景.其中一个子视图是一个UIButton
分割成另一个场景UIViewController
子类的子视图.当我从视图回来(弹出UIViewController
关闭导航控制器堆栈),我发现,滚动视图的起源已经在某种程度上改变了,虽然contentsize
和contentoffset
似乎是正确的.
有趣的是,该应用程序有一个标签栏,当我离开并返回到该视图时,滚动视图正确设置,偏移量为(0,0).
这个过程基本上没有涉及代码,因为它几乎都在故事板中.由于我对使用故事板相当新,我觉得我做错了什么,虽然我不知道是什么.关于那可能是什么的任何想法?也许是调整问题或限制?
Ale*_*lex 92
在iOS 7/8/9中简单self.automaticallyAdjustsScrollViewInsets = NO;
解决了我的问题.
Mac*_*ark 30
在弹出的视图控制器的viewWillAppear中尝试此操作:
self.scrollView.contentOffset = CGPointMake(0, 0);
Run Code Online (Sandbox Code Playgroud)
编辑:当还添加彼得的代码时,您将获得最佳结果:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:YES];
self.scrollView.contentOffset = CGPointMake(0, 0);
}
Run Code Online (Sandbox Code Playgroud)
加
- (void)viewWillDisappear:(BOOL)animated {
self.recentContentOffset = self.scrollView.contentOffset;
[super viewWillDisappear:animated];
}
Run Code Online (Sandbox Code Playgroud)
和
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
self.scrollView.contentOffset = CGPointMake(0, self.recentContentOffset.y);
}
Run Code Online (Sandbox Code Playgroud)
返回到原始滚动位置,没有视觉副作用,滚动视图本身在返回后正确定位在其超级视图中(这是一个问题).
Pet*_*obs 12
实际上,我把那行代码放进去,viewDidDisappear
以便在视图重新出现时记住偏移,我在它之前添加了这一行
self.contentOffset = self.scrollView.contentOffset;
Run Code Online (Sandbox Code Playgroud)
以及
- (void)viewDidLayoutSubviews {
self.scrollView.contentOffset = self.contentOffset;
}
Run Code Online (Sandbox Code Playgroud)
我有一个类似的问题,在解除viewController后,我的tableView中的contentOffset被更改为(0,-64).
我的解决方案有点奇怪,我尝试了所有其他答案,但没有成功,唯一解决我的问题的是切换.xib控件树中的tableView位置
它是父视图中的第一个控件,如下所示:
我在ImageView之后移动了tableView并且它工作正常:
似乎将表视图放在第一个位置导致了麻烦,并将表视图移动到另一个位置解决了问题.
PD我没有使用autoLayout和故事板
希望这可以帮助别人!
我正在使用collectionView,我遇到了类似的问题.对于iOS 11:在尺寸检查器中,有"内容插入".将其设置为"从不".这解决了我的问题.我希望这可以帮助别人.
目标C:
if (@available(iOS 11, *)) {
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
Run Code Online (Sandbox Code Playgroud)
迅速:
if #available(iOS 11, *) {
UIScrollView.appearance().contentInsetAdjustmentBehavior = .never
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
40283 次 |
最近记录: |