Files
OrderScheduling/Pods/TYCyclePagerView/TYCyclePagerViewDemo/TYCyclePagerView/TYCyclePagerTransformLayout.h
T
2025-03-13 15:09:17 +08:00

75 lines
2.3 KiB
Objective-C
Executable File

//
// TYCyclePagerViewLayout.h
// TYCyclePagerViewDemo
//
// Created by tany on 2017/6/19.
// Copyright © 2017年 tany. All rights reserved.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, TYCyclePagerTransformLayoutType) {
TYCyclePagerTransformLayoutNormal,
TYCyclePagerTransformLayoutLinear,
TYCyclePagerTransformLayoutCoverflow,
};
@class TYCyclePagerTransformLayout;
@protocol TYCyclePagerTransformLayoutDelegate <NSObject>
// initialize layout attributes
- (void)pagerViewTransformLayout:(TYCyclePagerTransformLayout *)pagerViewTransformLayout initializeTransformAttributes:(UICollectionViewLayoutAttributes *)attributes;
// apply layout attributes
- (void)pagerViewTransformLayout:(TYCyclePagerTransformLayout *)pagerViewTransformLayout applyTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes;
@end
@interface TYCyclePagerViewLayout : NSObject
@property (nonatomic, assign) CGSize itemSize;
@property (nonatomic, assign) CGFloat itemSpacing;
@property (nonatomic, assign) UIEdgeInsets sectionInset;
@property (nonatomic, assign) TYCyclePagerTransformLayoutType layoutType;
@property (nonatomic, assign) CGFloat minimumScale; // sacle default 0.8
@property (nonatomic, assign) CGFloat minimumAlpha; // alpha default 1.0
@property (nonatomic, assign) CGFloat maximumAngle; // angle is % default 0.2
@property (nonatomic, assign) BOOL isInfiniteLoop; // infinte scroll
@property (nonatomic, assign) CGFloat rateOfChange; // scale and angle change rate
@property (nonatomic, assign) BOOL adjustSpacingWhenScroling;
/**
pageView cell item vertical centering
*/
@property (nonatomic, assign) BOOL itemVerticalCenter;
/**
first and last item horizontalc enter, when isInfiniteLoop is NO
*/
@property (nonatomic, assign) BOOL itemHorizontalCenter;
// sectionInset
@property (nonatomic, assign, readonly) UIEdgeInsets onlyOneSectionInset;
@property (nonatomic, assign, readonly) UIEdgeInsets firstSectionInset;
@property (nonatomic, assign, readonly) UIEdgeInsets lastSectionInset;
@property (nonatomic, assign, readonly) UIEdgeInsets middleSectionInset;
@end
@interface TYCyclePagerTransformLayout : UICollectionViewFlowLayout
@property (nonatomic, strong) TYCyclePagerViewLayout *layout;
@property (nonatomic, weak, nullable) id<TYCyclePagerTransformLayoutDelegate> delegate;
@end
NS_ASSUME_NONNULL_END