最近在做类似马蜂窝(找资料时有人说小红书也是这个效果), 详情中滚动图片带动下面的文字上下移动, 而滚动范围随着当前显示的图片的高度变化而变化.首先提供一个链接:https://github.com/krystalName/KNImageSlide, 感谢作者, 欢迎star. 在这基础上, 我有了一个新的需求, 设置第一次进入时的图片不在第一个, 因此, 我加了一个方法:
- (void)setupImageViewFrame {
if(_currentPage==0) {
return;
}
NSIntegerpage =0;
do{
UIImageView*firstImageView = (UIImageView*)[selfviewWithTag:100+page];
RDSlidingImageModel*firstModel = [self.imageArrayobjectAtIndex:page];
RDSlidingImageModel*nextModel = [self.imageArrayobjectAtIndex:page+1];
CGFloatnextImageHeight = [selfheightformodel:nextModel];
//设置Y
CGFloatdistanceY = nextImageHeight - firstImageView.height;
CGFloatfirstScale = [firstModel.imageWidthfloatValue] / [firstModel.imageHeightfloatValue];
CGFloatnextScale = [nextModel.imageWidthfloatValue] / [nextModel.imageHeightfloatValue];
firstImageView.frame=CGRectMake((firstImageView.frame.origin.x- distanceY * firstScale),0, nextImageHeight/nextScale, nextImageHeight);
page++;
}while(page <_currentPage);// i < 3;
}
_currentPage为设置当前显示的页, 我是在setCurrentPage方法里调用的, 感谢作者.
网友评论