Files
peko-ios/YuMi/Modules/YMRoom/View/AnimationView/GestureOptimizer.h

76 lines
1.7 KiB
Objective-C

//
// GestureOptimizer.h
// YuMi
//
// Created by AI Assistant on 2025/1/13.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
/**
* 手势区域类型
*/
typedef NS_ENUM(NSInteger, GestureAreaType) {
GestureAreaType_Left, // 左侧区域 (1/6)
GestureAreaType_Center, // 中央区域 (2/3)
GestureAreaType_Right // 右侧区域 (1/6)
};
/**
* 手势识别器优化管理器
* 负责优化 Banner 区域的手势识别性能
*/
@interface GestureOptimizer : NSObject
/**
* 单例方法
*/
+ (instancetype)sharedOptimizer;
/**
* 计算手势区域类型
* @param point 触摸点
* @param containerWidth 容器宽度
* @return 手势区域类型
*/
- (GestureAreaType)gestureAreaTypeForPoint:(CGPoint)point
containerWidth:(CGFloat)containerWidth;
/**
* 检查手势是否应该在指定区域生效
* @param gestureRecognizer 手势识别器
* @param point 触摸点
* @param containerWidth 容器宽度
* @return 是否应该生效
*/
- (BOOL)shouldGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
receiveTouchAtPoint:(CGPoint)point
containerWidth:(CGFloat)containerWidth;
/**
* 获取区域边界
* @param containerWidth 容器宽度
* @return 包含左边界和右边界的字典
*/
- (NSDictionary *)getAreaBoundariesForContainerWidth:(CGFloat)containerWidth;
/**
* 调试方法:打印手势区域信息
* @param point 触摸点
* @param containerWidth 容器宽度
*/
- (void)debugGestureAreaForPoint:(CGPoint)point
containerWidth:(CGFloat)containerWidth;
/**
* 清理缓存
*/
- (void)clearCache;
@end
NS_ASSUME_NONNULL_END