1

我有FirstViewController,其中包含一个带有UIScrollView 的UIView,并且在UIScrollView 中有一个UITableView。UITableView 已禁用滚动,我只增加 UIScrollView 的 contentSize 才能看到完整的 UITableView。

___________________________________
|                                 |
|                                 |
|                                 |
-----------Various content---------
|                                 |
|                                 |
|                                 |
___________________________________
|                                 |
|                                 |
|                                 |
|                                 |
|           UITableView           |
|                                 |
|                                 |
|                                 |
|_________________________________|

当我在我的 UIScrollView 中的某个点上,以便 contentOffset =/= 0 并且我按下 UITableView 中的一个单元格时,我会模态地呈现一个新的控制器(SecondViewController)。这工作正常。当我关闭 SecondViewController 时,FirstViewController 中的内容被搞砸了。

UITableView 最初设置为使其原点位于屏幕中间(垂直)。当我关闭 SecondViewController 时,UITableView 肯定它的来源位于屏幕中间,但 UITableView 上方的内容在 UIScrollVIew 中被向上推,其值为 contentOffset(在推入 SecondViewController 之前是什么)。

___________________________________
|                                 |
-----------Various content---------
|                                 |    
|                                 |
|                                 |
|                                 |    
|                                 |
___________________________________
|                                 |
|                                 |
|                                 |
|                                 |
|           UITableView           |
|                                 |
|                                 |
|                                 |
|_________________________________|

编辑:我刚刚发现 UIScrollView 中的 _startOffsetY 已更改。而且我不知道这是否与它有关,但分页被禁用。

4

2 回答 2

1

做这个 :

-(void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [scrollView setContentOffset:CGPointZero];


}

-(void) viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [scrollView setContentSize:(CGSizeMake(320, scrollSubView.frame.size.height))];

}
于 2013-06-06T14:16:48.533 回答
0

确保您使用的是 iOS5 模拟器或设备,因为在 iOS6 中不推荐使用解除模型 viewController。

要在所有 iOS 中工作,您必须像......

if ([self respondsToSelector:@selector(presentViewController:animated:completion:)])
{
    [self presentViewController:test animated:YES completion:nil];
}
else
{
     [self presentModalViewController:test animated:YES];
}

并解雇喜欢

if ([self respondsToSelector:@selector(dismissViewControllerAnimated:completion:)])
{
    [self dismissViewControllerAnimated:animated completion:nil];
}
else
{
    [self dismissModalViewControllerAnimated:animated];
}

希望你会喜欢这个............

于 2013-03-21T09:12:51.860 回答