如何在自动布局中添加视差效果

我正在使用大小类的自动布局。 我想在UITableViewCell上添加视差效果,所以我参考。 以下链接

  • https://github.com/fernandospr/FSParallaxTableView
  • https://github.com/jberlana/JBParallaxCell

但他们没有使用自动布局,任何想法如何应用视差效果的imageView大小类上和自动布局时使用。

使用自动布局,它真的很容易在scrollview(或tableview)中添加视差。

要点是,除了其他的约束条件,我们在已添加到单元格内容的imageView上添加一个垂直中心约束,在滚动条上,我们更改所有可见单元垂直约束的常量值。 完成!

这里是示例代码

#import <UIKit/UIKit.h> #define kParallaxRatio 8.0 #pragma mark - Custom Cell @interface TableViewCell : UITableViewCell @property (nonatomic,weak) IBOutlet NSLayoutConstraint * verticalCenter; @end @implementation TableViewCell @end #pragma mark - Custom Table View Controller @interface TableViewController : UITableViewController @end @implementation TableViewController -(void)scrollViewDidScroll:(UIScrollView *)scrollView { NSArray * cells = [self.tableView visibleCells]; for (TableViewCell* cell in cells) { NSIndexPath * indexPathOfCell = [self.tableView indexPathForCell:cell]; CGRect cellRect = [self.tableView rectForRowAtIndexPath:indexPathOfCell]; cell.verticalCenter.constant = (scrollView.contentOffset.y -cellRect.origin.y)/kParallaxRatio; } } @end 

约束

在这里输入图像说明

PS:确保您的图像视图比单元格内容视图高度更高。 我为此添加了一个高度约束,使图像视图高度是单元格视图高度的3倍。