Change some properties and methods to imitate UICollectionViewFlowLayout's usage as much as possible
- Don't need to calculate item size by yourself.
- Also fix some issues with frame calculation.