轮播图视差效果

现在很多轮播图都带有视差效果。

介绍一种图视差效果的实现效果如下:


示例图

细心观察就会发现 cell.contentView.center 位于 cell在屏幕上可见区域的中心点,对于scrollowView也是如此。

代码也很简单(这里是基于table实现的,scrollView同理):

NSArray *arr = scrollview.visibleCells;
for (UITableViewCell* cell in arr) {
    CGRect rect = [cell convertRect:cell.bounds toView:self];
    CGFloat w = CGRectGetWidth(cell.bounds);
    CGFloat cx;
    if (rect.origin.x>0) {
        cx = (w - rect.origin.x)/2.0;
    }else{
        cx = w - (w + rect.origin.x)/2.0;
    }
    cell.contentView.center = CGPointMake(cx, cell.contentView.center.y);
}

视差效果代码在【scrollViewDidScroll:】代理内执行。

你可能感兴趣的:(轮播图视差效果)