【发布时间】:2012-11-19 23:51:28
【问题描述】:
我有一个 UIScrollview 加载正常,显示正常,一切正常。然后我推送另一个视图控制器,称之为 VC2,它也可以正常工作。从 VC2 我弹出回到 UIScrollview,这是奇怪的行为......当 UIScrollview 回来时,从顶部开始的第一个(我猜)300 像素被切断。如果我拉下页面,我仍然可以看到内容,但显然这对我不起作用。有人有什么想法吗?
代码如下:
这是创建 ScrollView:
-(IBAction)startNewSearch:(id)sender
{
NewSearch *VCscrollView = [[NewSearch alloc] init];
[[self navigationController] pushViewController:VCscrollView animated:YES];
}
滚动视图
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
scrollView.contentSize = CGSizeMake(320, 890);
[scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
[scrollView flashScrollIndicators];
}
-(void)viewWillAppear:(BOOL)animated
{
scrollView.frame = CGRectMake(0, 0, 320, 890);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
从 ScrollView 中调用 VC2 的 IBAction:
-(IBAction)previewSearch:(id)sender
{
VCcontactServer *VC2 = [[VCcontactServer alloc] init];
[[self navigationController] pushViewController:VC2 animated:YES];
}
【问题讨论】:
-
尝试检查scrollView的autoresizingMask
-
我尝试使用 scrollView.autoresizingMask = UIViewAutoresizingNone;并尝试使用 scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);但同样的结果。顺便说一句,我在 viewDidLoad 中使用了这些命令。
-
快速且不好的解决方案是在 viewWillAppear 中为您的 scrollView 设置框架,但您必须弄清楚为什么您的 scrollView 会调整大小。可能是您的滚动视图的超级视图没有正确调整大小?如果您发布代码,在哪里创建滚动视图,在哪里将其添加到子视图和您的 loadView、viewDidLoad 以及如果您有 viewDidAppear/Disappear,那就更好了
-
安德烈,你的工作很快。我仍然不知道为什么我会遇到这个问题。到目前为止,这都是非常标准的代码,没有真正的修改或添加。如果您对我的问题做出适当的回答,我会很乐意为您提供答案。谢谢。
-
你添加你的scrollView到self.view吗?它在界面生成器中吗?如果是,请尝试在 loadView 中手动创建 ScrollView,如果您的问题会消失,那么您应该更改 xib 中的一些属性。否则,您在其他地方做某事,我们需要更多您的代码,您可以在其中处理 scrollView 并且它是超级视图。
标签: ios uiviewcontroller uiscrollview