您好,这个热区的数量可以限制吗?
react 可裁剪拖拽的热区组件React Hot zone react 热区resize组件 Installation Usage Props PropDescriptionTypeDefaultsrc图...
您好,这个热区的数量可以限制吗?
react 可裁剪拖拽的热区组件React Hot zone react 热区resize组件 Installation Usage Props PropDescriptionTypeDefaultsrc图...
请问一下,UISlider滑块是如何平稳滑动的呢?
iOS开发 UISlider设置滑块形状以及 view转化成image今天需求是做一个播放器界面,如下图 播放进度条呢,一般有两种方式 ProgressView UISlider最开始需求是进度条不让拖动,本着后期需求的一个更改性,最终选择了使...
为啥我改成OC的无法循环滚动呢?
collectionView实现无限循环滚动卡片github源码地址 效果展示 前言 去年因为项目中有个切换学校的功能,要求以卡片浮动效果展示,并且能够无限循环滚动。 之前找了个demo它是通过自定义view动画实现的,卡...
OC 版翻译楼主的: 复制粘贴直接用
#import "SlideBigAnimationLayout.h"
#import "SDAutoLayout.h"
/// 垂直缩放除以系数
static CGFloat ActiveDistance = 400;
/// 缩放系数
static CGFloat ScaleFactor = 0.25;
@implementation SlideBigAnimationLayout
- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity {
CGRect targetRect = CGRectMake(proposedContentOffset.x, 0.0, self.collectionView.width, self.collectionView.height);
// 目标区域中包含的cell
NSArray<UICollectionViewLayoutAttributes *> *attriArray = [super layoutAttributesForElementsInRect:targetRect];
// collectionView落在屏幕中点的x坐标
CGFloat horizontalCenterX = proposedContentOffset.x + (self.collectionView.width / 2.0);
CGFloat offsetAdjustment = CGFLOAT_MAX;
for (UICollectionViewLayoutAttributes *layoutAttributes in attriArray) {
// 找出离中心点最近的
CGFloat itemHorizontalCenterX = layoutAttributes.center.x;
if (fabs(itemHorizontalCenterX - horizontalCenterX) < fabs(offsetAdjustment)) {
offsetAdjustment = itemHorizontalCenterX - horizontalCenterX;
}
}
return CGPointMake(proposedContentOffset.x + offsetAdjustment, proposedContentOffset.y);
}
- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect{
NSArray* array = [super layoutAttributesForElementsInRect:rect];
CGRect visibleRect = CGRectZero;
visibleRect.origin = self.collectionView.contentOffset;
visibleRect.size = self.collectionView.bounds.size;
for (UICollectionViewLayoutAttributes* attributes in array) {
CGFloat distance = CGRectGetMidX(visibleRect) - attributes.center.x;
CGFloat normalizedDistance = fabs(distance / ActiveDistance);
CGFloat zoom = 1 - ScaleFactor * normalizedDistance;
attributes.transform3D = CATransform3DMakeScale(1.0, zoom, 1.0);
}
return array;
}