Force layoutSubviews when calling -(void)reloadData

I have noticed that if I call:

<pre>[self.collectionView reloadData];
[self.collectionView scrollRectToVisible:CGRectInfinite animated:NO];</pre>

the view does not scroll to the end of the bounds. However, if `layoutSubviews` is called instead of `setNeedsLayout` when reloading data, the above code works.