UIScrollView只能在嵌入导航控件的视图控制器上工作吗?

问题描述:

UIScrollView仅适用于嵌入导航控件的视图控制器吗?我问的原因是因为我有一个UIViewController,它有一个UISCrollView来显示超出视图的所有内容。这个ViewController是从TableViewController的push segue中显示出来的,该TableViewController嵌入到导航控制器中。UIScrollView只能在嵌入导航控件的视图控制器上工作吗?

一切工作正常,直到我试图改变push segue到一个模态seque代替,从而删除了视图从嵌入到导航控制器。

所有的内容加载得很好,但不会滚动。我添加了一个插座并尝试以编程方式设置contentSize和scrollEnabled属性,但仍然没有任何结果。它不会再滚动,我无法弄清楚。我一直在网上搜索,但我找不到答案。

出口:

@property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 

实现:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.scrollView.contentSize = CGSizeMake(320, 900); 
    self.scrollView.scrollEnabled = YES; 
} 
+1

尝试设置回推SEGUE暂时以确保没有其他坏了,并确认这是唯一的变化。 –

+0

你知道它在push segue中没有工作。我以为是,但显然它只是在滚动由导航栏带走的额外空间。 – DJSK

我不得不把UIScrollView放到另一个空的UIView中才能使它工作。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
} 

-(void)viewDidAppear:(BOOL)animated 
{ 
    self.scrollView.contentSize = CGSizeMake(320, 900); 
    self.scrollView.scrollEnabled = YES; 
} 

enter image description here

+0

'另一个空的UIView为了得到它的工作' 这是我的关键,谢谢 – thefoyer

有许多指示与设置滚动视图的contentSize在viewDidLoad中问题的帖子。尝试将其移动到viewDidAppear。

+0

它推后继续工作,但它仍然不工作后模态赛格。我想我现在只是使用push segue。 – DJSK