设置contentInset或者selfAdjustsScrollViewInsets后,为了实际应用它,我该怎么办?

时间:2014-03-24 00:04:02

标签: ios ios7 uiscrollview setneedsdisplay insets

我的UIViewController包含UIScrollView。最初未设置automaticallyAdjustsScrollViewInsets(因此它应默认为YES)。

在某些用户互动中,我将automaticallyAdjustsScrollViewInsets设置为NO,因此我可以在滚动视图上设置自己的contentInset

这样做之后什么也没发生。之后我该怎么打电话?

在滚动视图上调用setNeedsDisplay无效。

1 个答案:

答案 0 :(得分:2)

如果您希望滚动视图的初始显示包含初始内容偏移,请在viewDidLoad中设置contentInset值。 如果您希望动态更改contentInset并同时更改contentOffset,则需要在contentInset的同时调整contentOffset。例如:

// Adjust content inset and initial offset to account for the header
UIEdgeInsets contentInset = self.collectionView.contentInset;
contentInset.top += self.stickyHeaderView.bounds.size.height;
self.collectionView.contentInset = contentInset;
if (-1 * self.collectionView.contentOffset.y < contentInset.top) {
    CGPoint contentOffset = self.collectionView.contentOffset;
    contentOffset.y = -1*contentInset.top;
    [self.collectionView setContentOffset:contentOffset animated:YES];
}