Mat*_*ger 30 iphone uiscrollview ios autolayout ios6
我有autolayout(也许)和我的scrollview的问题!
我的问题

然后我推到另一个视图
然后我回去看看它的滚动视图,我无法滚动到最高点.(我在滚动视图的弹跳中看到它)

有谁能够帮我?
use*_*136 40
包含视图控制器中的以下代码片段似乎也解决了问题,而不依赖于显式大小:
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
self.mainScrollView.contentOffset = CGPointZero;
}
Run Code Online (Sandbox Code Playgroud)
它确实将内容偏移重置为原点,但其他答案似乎也是如此.
小智 11
如果你还在寻找一个答案,我今天发现了它,这是在两天撞墙之后发现的.我只是粘贴你的代码,但最重要的是你加载你的scrollView ..
-(void)viewWillAppear:(BOOL)animated{
[scrollView setFrame:CGRectMake(0, 0, 320, 800)];
}
-(void)viewDidAppear:(BOOL)animated
{
[scrollView setScrollEnabled:YES];
[scrollView setContentSize:CGSizeMake(320, 800)];
}
Run Code Online (Sandbox Code Playgroud)
所有这些都是之前加载的 -(void)viewDidLoad
请注意高度在两个实例800中,这对于解决此问题至关重要.祝你的项目好运;)
我正在使用亚当的解决方案,但当我用动画解雇时开始出现问题:是的.在我的代码中,内容偏移量在viewWillAppear之后设置了一段时间(因为viewWillAppear看起来太快了).
- (void)viewDidDisappear:(BOOL)animated
{
self.scrollOffsetToPersist = self.scrollView.contentOffset;
self.scrollView.contentOffset = CGPointZero;
[super viewDidDisappear:animated];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSOperationQueue mainQueue] addOperationWithBlock:^
{
self.scrollView.contentOffset = self.scrollOffsetToPersist;
}];
}
Run Code Online (Sandbox Code Playgroud)
编辑:另一种更好的方法是在viewDidLayoutSubviews中重置它:)
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
if(!CGPointEqualToPoint(CGPointZero, self.scrollOffsetToPersist))
{
self.scrollView.contentOffset = self.scrollOffsetToPersist;
self.scrollOffsetToPersist = CGPointZero;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18358 次 |
| 最近记录: |