cdts/xdts-ios 3/TreeHole/CYHResetCode/CYH/QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout.h

93 lines
3.7 KiB
C
Raw Normal View History

2023-07-27 09:20:00 +08:00
/**
* Tencent is pleased to support the open source community by making QMUI_iOS available.
* Copyright (C) 2016-2021 THL A29 Limited, a Tencent company. All rights reserved.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
* http://opensource.org/licenses/MIT
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
*/
//
// QMUICollectionViewPagingLayout.h
// qmui
//
// Created by QMUI Team on 15/9/24.
//
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger, QMUICollectionViewPagingLayoutStyle) {
QMUICollectionViewPagingLayoutStyleDefault, // 普通模式,水平滑动
QMUICollectionViewPagingLayoutStyleScale, // 缩放模式两边的item会小一点逐渐向中间放大
QMUICollectionViewPagingLayoutStyleRotation // 旋转模式,围绕底部某个点为中心旋转
};
/**
* UICollectionViewLayout
*
* @warning item UICollectionViewFlowLayout property item delegate itemSizesectionInset
*/
@interface QMUICollectionViewPagingLayout : UICollectionViewFlowLayout
- (instancetype)initWithStyle:(QMUICollectionViewPagingLayoutStyle)style NS_DESIGNATED_INITIALIZER;
@property(nonatomic, assign, readonly) QMUICollectionViewPagingLayoutStyle style;
/**
* 使 0.4
*/
@property(nonatomic, assign) CGFloat velocityForEnsurePageDown;
/**
* item YES
*/
@property(nonatomic, assign) BOOL allowsMultipleItemScroll;
/**
* item item 2.5
*
* allowsMultipleItemScroll YES
*/
@property(nonatomic, assign) CGFloat multipleItemScrollVelocityLimit;
@end
@interface QMUICollectionViewPagingLayout (DefaultStyle)
/// 当前 cell 的百分之多少滚过临界点时就会触发滚到下一张的动作,默认为 .666,也即超过 2/3 即会滚到下一张。
/// 对应地,触发滚到上一张的临界点将会被设置为 (1 - pagingThreshold)
@property(nonatomic, assign) CGFloat pagingThreshold;
/// 打开时,会在 collectionView.backgroundView 上添加一条红线,用来标志分页的参考点位置。仅对 Default style 有效。
@property(nonatomic, assign) BOOL debug;
@end
@interface QMUICollectionViewPagingLayout (ScaleStyle)
/**
* 1.0
*/
@property(nonatomic, assign) CGFloat maximumScale;
/**
* 0.9
*/
@property(nonatomic, assign) CGFloat minimumScale;
@end
extern const CGFloat QMUICollectionViewPagingLayoutRotationRadiusAutomatic;
@interface QMUICollectionViewPagingLayout (RotationStyle)
/**
*
* rotationRadius * 90
* rotationRadius表示旋转的半径
* @warning style QMUICollectionViewPagingLayoutStyleRotation
*/
@property(nonatomic, assign) CGFloat rotationRatio;
@property(nonatomic, assign) CGFloat rotationRadius;
@end