// // RDReaderTapRegionHandler.swift // ReadViewSDK // // 文件职责:点击区域判定处理器,将屏幕点击坐标映射为翻页或工具栏操作事件。 // import CoreGraphics /// 点击区域判定处理器 /// 将屏幕三等分为左、中、右三个区域,根据点击位置和工具栏可见状态 /// 决定触发上一页、下一页还是切换工具栏。 struct RDReaderTapRegionHandler { /// 根据点击坐标和视图尺寸,解析点击事件类型 /// - 左1/3区域:上一页(工具栏可见时转为 center) /// - 中1/3区域:切换工具栏 /// - 右1/3区域:下一页(工具栏可见时转为 center) func resolveTapEvent( point: CGPoint, viewFrame: CGRect, isToolViewVisible: Bool ) -> RDReaderView.TapEvent { let leftFrame = CGRect(x: 0, y: 0, width: viewFrame.width / 3, height: viewFrame.height) let centerFrame = CGRect(x: viewFrame.width / 3, y: 0, width: viewFrame.width / 3, height: viewFrame.height) let rightFrame = CGRect(x: viewFrame.width * 2 / 3, y: 0, width: viewFrame.width / 3, height: viewFrame.height) if leftFrame.contains(point) { return isToolViewVisible ? .center : .left } if centerFrame.contains(point) { return .center } if rightFrame.contains(point) { return isToolViewVisible ? .center : .right } return .none } }