UIScrollView 是不是仅适用于嵌入在导航控件中的视图控制器?
Posted
技术标签:
【中文标题】UIScrollView 是不是仅适用于嵌入在导航控件中的视图控制器?【英文标题】:Does UIScrollView only work on a view controller that is embedded in a Navigation Control?UIScrollView 是否仅适用于嵌入在导航控件中的视图控制器? 【发布时间】:2013-07-12 17:21:06 【问题描述】:UIScrollView 是否仅适用于嵌入在导航控件中的视图控制器?我问的原因是因为我有一个 UIViewController,它有一个 UISCrollView 来显示超出视图的所有内容。这个 ViewController 是从 TableViewController 中的 push segue 中显示的,它嵌入到 Navigation Controller 中。
在我尝试将 push segue 更改为模态序列之前,一切正常,从而将视图从嵌入到导航控制器中移除。
所有内容都可以正常加载,但不会滚动。我添加了一个插座并尝试以编程方式设置 contentSize 和 scrollEnabled 属性,但仍然没有。它不会再滚动了,我无法弄清楚。我一直在网上搜索,但找不到答案。
出口:
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
实施:
- (void)viewDidLoad
[super viewDidLoad];
self.scrollView.contentSize = CGSizeMake(320, 900);
self.scrollView.scrollEnabled = YES;
【问题讨论】:
尝试暂时将其设置回 push segue 以确保没有其他问题,并验证这是唯一的更改。 你知道它在 Push segue 中也不起作用。我以为是,但显然它只是滚动导航栏占用的额外空间。 【参考方案1】:有许多帖子表明在 viewDidLoad 中设置滚动视图的 contentSize 存在问题。尝试将其移动到 viewDidAppear。
【讨论】:
它在 push segue 之后肯定可以工作,但在模态 segue 之后仍然无法工作。我想我现在只使用 push segue。【参考方案2】:我必须将 UIScrollView 放在另一个空的 UIView 中才能使其工作。
- (void)viewDidLoad
[super viewDidLoad];
-(void)viewDidAppear:(BOOL)animated
self.scrollView.contentSize = CGSizeMake(320, 900);
self.scrollView.scrollEnabled = YES;
【讨论】:
another empty UIView in order to get it to work
这是我的钥匙,谢谢以上是关于UIScrollView 是不是仅适用于嵌入在导航控件中的视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollView : UIEdgeInsets 仅适用于“顶部”和“左侧”
在 UIScrollView 中嵌入 UITableView/UICollectionView
包含在嵌入导航控制器的视图控制器中时,UIScrollView 不滚动