UITableView的paging效果并让Cell停留在中间
UITableView继承自UIScrollView,因此也有pagingEnable属性,但是paging的宽度为frame宽度并且无法设置,所以无法实现滑动时让Cell停留在frame中间。利用UIScrollView代理方法,可以实现以上效果。具体效果如下:
代码如下:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
CGFloat rowHeight = self.tableView.rowHeight;
int verticalOffset = ((int)targetContentOffset->y % (int)rowHeight);
if (velocity.y < 0) {
targetContentOffset->y -= verticalOffset;
} else if (velocity.y > 0) {
targetContentOffset->y += (rowHeight - verticalOffset);
} else {
if (verticalOffset < rowHeight / 2) {
targetContentOffset->y -= verticalOffset;
} else {
targetContentOffset->y += (rowHeight - verticalOffset);
}
}
}
并且把tableview的deceleartionRate属性设置为UIScrollViewDecelerationRateFast