我在UIView
中有一个{{1}中的一个UICollectionView
和UIScrollView
。我必须同时滚动两个我无法对其进行滚动的视图。因此,当我第一次启动该屏幕时,我可以滚动整个视图,但是当我按下(next 1stVC
)ViewController
然后按“返回”按钮2ndVC
时,我的滚动视图是没有执行它就冻结了。
尝试此方法:-
1stVC
尝试此方法:-
-(void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
dispatch_async(dispatch_get_main_queue(), ^ {
CGRect contentRect = CGRectZero;
for(UIView *view in self.scrollView.subviews)
contentRect = CGRectUnion(contentRect,view.frame);
self.scrollView.contentSize = contentRect.size;
});
}
为了获得“集合”视图的动态高度,我已经完成了
-(void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
[_scrollView setContentSize:CGSizeMake(_scrollView.frame.size.width, _scrollView.frame.size.height)];
}
我已提供给ScollView ContentSize。
CGFloat height = _collectionCompass.contentSize.height;
请帮助我。
答案 0 :(得分:1)
我真正建议的是删除滚动视图并在集合视图中执行所有操作,因为使用滚动视图会丢失一些好处(例如,单元格重用)。此外,在滚动视图中使用集合视图也是一种不好的做法。 来自Apple style guide:
请勿将滚动视图放在另一个滚动视图内。这样做会导致难以控制的界面难以控制。
如果用户界面为列表,则可以将视图添加为集合视图的标题或另一个单元格。使用这种方法,您可以从viewDidLayoutSubviews