diff --git a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate index 052c5bc..ddf6333 100644 Binary files a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate and b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 1672164..9c0463d 100644 --- a/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/OrderScheduling.xcworkspace/xcuserdata/zd.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -1269,8 +1269,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "131" - endingLineNumber = "131" + startingLineNumber = "150" + endingLineNumber = "150" landmarkName = "viewDidLoad()" landmarkType = "7"> @@ -1285,8 +1285,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "132" - endingLineNumber = "132" + startingLineNumber = "151" + endingLineNumber = "151" landmarkName = "viewDidLoad()" landmarkType = "7"> @@ -1301,8 +1301,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "119" - endingLineNumber = "119" + startingLineNumber = "138" + endingLineNumber = "138" landmarkName = "viewDidLoad()" landmarkType = "7"> @@ -1413,8 +1413,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "100" - endingLineNumber = "100" + startingLineNumber = "119" + endingLineNumber = "119" landmarkName = "init(models:isPaiban:isAlarm:)" landmarkType = "7"> @@ -1429,8 +1429,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "93" - endingLineNumber = "93" + startingLineNumber = "111" + endingLineNumber = "111" landmarkName = "VehicleMonitoringListController" landmarkType = "3"> @@ -1537,8 +1537,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "92" - endingLineNumber = "92" + startingLineNumber = "110" + endingLineNumber = "110" landmarkName = "VehicleMonitoringListController" landmarkType = "3"> @@ -2013,8 +2013,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "116" - endingLineNumber = "116" + startingLineNumber = "135" + endingLineNumber = "135" landmarkName = "viewDidLoad()" landmarkType = "7"> @@ -2029,8 +2029,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "714" - endingLineNumber = "714" + startingLineNumber = "726" + endingLineNumber = "726" landmarkName = "viewDidLoad()" landmarkType = "7"> @@ -2556,8 +2556,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "433" - endingLineNumber = "433" + startingLineNumber = "442" + endingLineNumber = "442" landmarkName = "reloadData(index:)" landmarkType = "7"> @@ -2572,8 +2572,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "431" - endingLineNumber = "431" + startingLineNumber = "440" + endingLineNumber = "440" landmarkName = "reloadData(index:)" landmarkType = "7"> @@ -2588,8 +2588,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "434" - endingLineNumber = "434" + startingLineNumber = "443" + endingLineNumber = "443" landmarkName = "reloadData(index:)" landmarkType = "7"> @@ -4839,8 +4839,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "757" - endingLineNumber = "757" + startingLineNumber = "769" + endingLineNumber = "769" landmarkName = "addSubviews()" landmarkType = "7"> @@ -4855,8 +4855,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "322" - endingLineNumber = "322" + startingLineNumber = "327" + endingLineNumber = "327" landmarkName = "listContainerView(_:initListFor:)" landmarkType = "7"> @@ -4871,9 +4871,9 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "495" - endingLineNumber = "495" - landmarkName = "selectVehicle(vehicleModel:currentTableViewVehicleModels:selectIndex:mapView:)" + startingLineNumber = "504" + endingLineNumber = "504" + landmarkName = "selectVehicle(selectState:vehicleModel:currentTableViewVehicleModels:selectIndex:mapView:)" landmarkType = "7"> @@ -4887,8 +4887,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "363" - endingLineNumber = "363" + startingLineNumber = "372" + endingLineNumber = "372" landmarkName = "listContainerView(_:initListFor:)" landmarkType = "7"> @@ -4903,8 +4903,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "350" - endingLineNumber = "350" + startingLineNumber = "355" + endingLineNumber = "355" landmarkName = "listContainerView(_:initListFor:)" landmarkType = "7"> @@ -4951,8 +4951,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "369" - endingLineNumber = "369" + startingLineNumber = "378" + endingLineNumber = "378" landmarkName = "categoryView(_:didSelectedItemAt:)" landmarkType = "7"> @@ -4999,8 +4999,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "380" - endingLineNumber = "380" + startingLineNumber = "389" + endingLineNumber = "389" landmarkName = "categoryView(_:didSelectedItemAt:)" landmarkType = "7"> @@ -5015,8 +5015,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "822" - endingLineNumber = "822" + startingLineNumber = "834" + endingLineNumber = "834" landmarkName = "viewSafeAreaInsetsDidChange()" landmarkType = "7"> @@ -5095,8 +5095,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1227" - endingLineNumber = "1227" + startingLineNumber = "1239" + endingLineNumber = "1239" landmarkName = "init(taskModels:)" landmarkType = "7"> @@ -5143,8 +5143,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1239" - endingLineNumber = "1239" + startingLineNumber = "1251" + endingLineNumber = "1251" landmarkName = "init(taskModels:)" landmarkType = "7"> @@ -5191,8 +5191,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1241" - endingLineNumber = "1241" + startingLineNumber = "1253" + endingLineNumber = "1253" landmarkName = "init(taskModels:)" landmarkType = "7"> @@ -5286,8 +5286,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1068" - endingLineNumber = "1068" + startingLineNumber = "1080" + endingLineNumber = "1080" landmarkName = "listContainerView(_:initListFor:)" landmarkType = "7"> @@ -5302,8 +5302,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1369" - endingLineNumber = "1369" + startingLineNumber = "1381" + endingLineNumber = "1381" landmarkName = "updateData(taskModel:)" landmarkType = "7"> @@ -5334,8 +5334,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1230" - endingLineNumber = "1230" + startingLineNumber = "1242" + endingLineNumber = "1242" landmarkName = "init(taskModels:)" landmarkType = "7"> @@ -5350,8 +5350,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1243" - endingLineNumber = "1243" + startingLineNumber = "1255" + endingLineNumber = "1255" landmarkName = "init(taskModels:)" landmarkType = "7"> @@ -5366,8 +5366,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1073" - endingLineNumber = "1073" + startingLineNumber = "1085" + endingLineNumber = "1085" landmarkName = "categoryView(_:didSelectedItemAt:)" landmarkType = "7"> @@ -5382,8 +5382,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1242" - endingLineNumber = "1242" + startingLineNumber = "1254" + endingLineNumber = "1254" landmarkName = "init(taskModels:)" landmarkType = "7"> @@ -5398,8 +5398,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "370" - endingLineNumber = "370" + startingLineNumber = "379" + endingLineNumber = "379" landmarkName = "categoryView(_:didSelectedItemAt:)" landmarkType = "7"> @@ -5414,8 +5414,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "606" - endingLineNumber = "606" + startingLineNumber = "615" + endingLineNumber = "615" landmarkName = "showListDetail(vehicleModel:)" landmarkType = "7"> @@ -5462,8 +5462,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "802" - endingLineNumber = "802" + startingLineNumber = "814" + endingLineNumber = "814" landmarkName = "viewSafeAreaInsetsDidChange()" landmarkType = "7"> @@ -5478,8 +5478,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "808" - endingLineNumber = "808" + startingLineNumber = "820" + endingLineNumber = "820" landmarkName = "viewSafeAreaInsetsDidChange()" landmarkType = "7"> @@ -5494,8 +5494,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "814" - endingLineNumber = "814" + startingLineNumber = "826" + endingLineNumber = "826" landmarkName = "viewSafeAreaInsetsDidChange()" landmarkType = "7"> @@ -5574,8 +5574,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "1375" - endingLineNumber = "1375" + startingLineNumber = "1387" + endingLineNumber = "1387" landmarkName = "listView()" landmarkType = "7"> @@ -5590,8 +5590,8 @@ filePath = "OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "630" - endingLineNumber = "630" + startingLineNumber = "639" + endingLineNumber = "639" landmarkName = "showListDetail(vehicleModel:)" landmarkType = "7"> @@ -5628,5 +5628,37 @@ + + + + + + + + diff --git a/OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift b/OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift index cef529b..8c829e2 100644 --- a/OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift +++ b/OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringController.swift @@ -279,8 +279,13 @@ extension VehicleMonitoringController : DDMAMapViewDelegate { if let tapPointAnnotation = view.annotation as? MAPointAnnotation, let mapModel = self.mapModel { let model = mapModel[tapPointAnnotation.tag] - selectVehicle(vehicleModel: model, currentTableViewVehicleModels: mapModel, selectIndex: tapPointAnnotation.tag, mapView: mapView) - showListDetail(vehicleModel: model) + if model.isSelected == true { + selectVehicle(selectState: false,vehicleModel: model, currentTableViewVehicleModels: mapModel, selectIndex: tapPointAnnotation.tag, mapView: mapView) + hideListDetail() + }else{ + selectVehicle(selectState: true,vehicleModel: model, currentTableViewVehicleModels: mapModel, selectIndex: tapPointAnnotation.tag, mapView: mapView) + showListDetail(vehicleModel: model) + } } } @@ -349,17 +354,21 @@ extension VehicleMonitoringController : JXCategoryListContainerViewDelegate { vc?.selectCellBlock = {[weak self] (model,item) in if let models = vc?.models,let mapView = self?.vehicleMonitoringView.maMapView.maMapView { - self?.selectVehicle(vehicleModel: model, currentTableViewVehicleModels: models, selectIndex: item, mapView: mapView) + self?.selectVehicle(selectState: true,vehicleModel: model, currentTableViewVehicleModels: models, selectIndex: item, mapView: mapView) } - - self?.showListDetail(vehicleModel: model) - // /// 将镜头设置为选中的item // if let lat = model.lat,let lon = model.lon { // self?.vehicleMonitoringView.maMapView.maMapView.setCenter(CLLocationCoordinate2D(latitude: Double(lat) ?? 0, longitude: Double(lon) ?? 0), animated: true) // } // } + vc?.showDetailBlock = {[weak self] (model,item) in + if let models = vc?.models,let mapView = self?.vehicleMonitoringView.maMapView.maMapView { + self?.selectVehicle(selectState: true,vehicleModel: model, currentTableViewVehicleModels: models, selectIndex: item, mapView: mapView) + } + + self?.showListDetail(vehicleModel: model) + } return vc } } @@ -375,7 +384,7 @@ extension VehicleMonitoringController : JXCategoryViewDelegate { self?.currentTableView = (vc as? VehicleMonitoringListController)?.vehicleMonitoringListView.tableView } if self?.pannelPanGes.panGesValue.expandLevel == .min { - self?.pannelPanGes.expand(.default) + self?.pannelPanGes.expand(.min) } } } @@ -437,7 +446,7 @@ extension VehicleMonitoringController : JXCategoryViewDelegate { } extension VehicleMonitoringController { - func selectVehicle(vehicleModel: VehicleMonitorListDataModel.ItemModel, currentTableViewVehicleModels: [VehicleMonitorListDataModel.ItemModel],selectIndex: Int, mapView: MAMapView) { + func selectVehicle(selectState: Bool,vehicleModel: VehicleMonitorListDataModel.ItemModel, currentTableViewVehicleModels: [VehicleMonitorListDataModel.ItemModel],selectIndex: Int, mapView: MAMapView) { resetSelectedOfDataModel() @@ -475,7 +484,7 @@ extension VehicleMonitoringController { } /// 将当前选中设为true - vehicleModel.isSelected = true + vehicleModel.isSelected = selectState zIndex+=1 vehicleModel.zIndex = zIndex @@ -626,10 +635,13 @@ extension VehicleMonitoringController { vehicleMonitoringListDetailView.updateData(taskModels: vehicleModel.taskList ?? []) /// 收回pannelView - if isListDetailViewShowed == false { + if isListDetailViewShowed == false { previousStateOfPannelView = pannelPanGes.panGesValue.expandLevel } - pannelPanGes.expand(.default) + if previousStateOfPannelView == .min { + }else{ + pannelPanGes.expand(.default) + } /// 改变约束 vehicleMonitoringListDetailView.snp.updateConstraints({ make in diff --git a/OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift b/OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift index ab04be4..e2bbd06 100644 --- a/OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift +++ b/OrderScheduling/VehicleMonitoring/ViewController/VehicleMonitoringListController.swift @@ -71,6 +71,24 @@ extension VehicleMonitoringListController : UITableViewDelegate,UITableViewDataS break } + cell?.iconTapGes.rx.event + .observe(on: MainScheduler.instance) + .subscribe(onNext: {[weak self] _ in + if self?.showDetailBlock != nil { + self?.showDetailBlock!(model,indexPath.item) + } + }) + .disposed(by: cell!.disposeBag) + + cell?.vehicleTapGes.rx.event + .observe(on: MainScheduler.instance) + .subscribe(onNext: {[weak self] _ in + if self?.showDetailBlock != nil { + self?.showDetailBlock!(model,indexPath.item) + } + }) + .disposed(by: cell!.disposeBag) + cell?.callButton.rx.tap .observe(on: MainScheduler.instance) .subscribe(onNext: { _ in @@ -92,6 +110,7 @@ open class VehicleMonitoringListController : ZDViewController { public let vehicleMonitoringListView = VehicleMonitoringListView() public var models : [VehicleMonitorListDataModel.ItemModel] = [] public var selectCellBlock: ((VehicleMonitorListDataModel.ItemModel, Int) -> Void)? + public var showDetailBlock: ((VehicleMonitorListDataModel.ItemModel, Int) -> Void)? private var isPaiban : Bool? private var isAlarm : Bool? private var emptyView = EmptyView() @@ -170,6 +189,8 @@ open class VehicleMonitoringListCell : DDTableViewCell { public let nameLabel : DDLabel public let callButton : DDButton private let line : DDView + public let iconTapGes : UITapGestureRecognizer + public let vehicleTapGes : UITapGestureRecognizer public override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { disposeBag = DisposeBag() radiusView = DDView() @@ -183,6 +204,8 @@ open class VehicleMonitoringListCell : DDTableViewCell { callButton = DDButton.dd_initCustom() callButton.setImage(UIImage(named:"vehicleMonitor_call_cell"), for: .normal) line = DDView() + iconTapGes = UITapGestureRecognizer() + vehicleTapGes = UITapGestureRecognizer() super.init(style: style, reuseIdentifier: reuseIdentifier) selectionStyle = .none contentView.addSubview(radiusView) @@ -203,6 +226,10 @@ open class VehicleMonitoringListCell : DDTableViewCell { radiusView.addSubview(callButton) line.backgroundColor = .hex("F2F3F6") radiusView.addSubview(line) + icon.isUserInteractionEnabled = true + icon.addGestureRecognizer(iconTapGes) + vehicleLabel.isUserInteractionEnabled = true + vehicleLabel.addGestureRecognizer(vehicleTapGes) radiusView.snp.makeConstraints { make in make.edges.equalToSuperview() diff --git a/Podfile b/Podfile index 594b0ae..bd1c5e3 100644 --- a/Podfile +++ b/Podfile @@ -39,7 +39,7 @@ target 'OrderScheduling' do pod 'Bugly' pod 'SwiftyRSA' pod 'DDPersistenceKit_Private' - pod 'DDUIGestureRecognizer', '0.1.4' + pod 'DDUIGestureRecognizer', '0.1.5' post_install do |installer| installer.pods_project.targets.each do |target| diff --git a/Podfile.lock b/Podfile.lock index 5f21994..d676b88 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -283,9 +283,9 @@ PODS: - DDTimerSwiftKit_Private (0.2.1): - DDLogKit_Private/SwiftLog - DDToastKit_Private (0.1.2) - - DDUIGestureRecognizer (0.1.4): - - DDUIGestureRecognizer/DDUIPanGestureRecognizer (= 0.1.4) - - DDUIGestureRecognizer/DDUIPanGestureRecognizer (0.1.4) + - DDUIGestureRecognizer (0.1.5): + - DDUIGestureRecognizer/DDUIPanGestureRecognizer (= 0.1.5) + - DDUIGestureRecognizer/DDUIPanGestureRecognizer (0.1.5) - DDUtilsSwiftKit_Private (0.1.1): - DDUtilsSwiftKit_Private/ApplicationInfo (= 0.1.1) - DDUtilsSwiftKit_Private/DeviceInfo (= 0.1.1) @@ -352,7 +352,7 @@ DEPENDENCIES: - DDProgressHUDKit_Private - DDTimerSwiftKit_Private - DDToastKit_Private - - DDUIGestureRecognizer (= 0.1.4) + - DDUIGestureRecognizer (= 0.1.5) - DDUtilsSwiftKit_Private - DDWebImageKit_Private - DDZFPlayerKit_Private/ControlView @@ -441,7 +441,7 @@ SPEC CHECKSUMS: DDProgressHUDKit_Private: 1e219062ddeb7801a4bb13b367efa1f3fbf17f1e DDTimerSwiftKit_Private: cce3fe58b1b581fe4cddb3fb84fcde31b4e83541 DDToastKit_Private: b6ae3709d110cadca503a037419f3709d1755256 - DDUIGestureRecognizer: 207a58f9c0123664ff8d9d323d94e1481975b696 + DDUIGestureRecognizer: e7b1b6d4d73e2fc2c48dcfb38655881814d094ff DDUtilsSwiftKit_Private: 03575cb3204cd43f3521049263f4b6cae3e64700 DDWebImageKit_Private: b905111547e44626773b729bae9030403a9a0c76 DDZFPlayerKit_Private: 5f63a8101e35ffd7b2568f551cbf33b8bedc48ba @@ -461,6 +461,6 @@ SPEC CHECKSUMS: SwiftyRSA: 8c6dd1ea7db1b8dc4fb517a202f88bb1354bc2c6 ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b -PODFILE CHECKSUM: b8d52ee7c2693a0587d0eddb0f63d9e164d97c2d +PODFILE CHECKSUM: 42053b92ac9e24ed76797463ba14cc31e3771ffc COCOAPODS: 1.11.3 diff --git a/Pods/DDUIGestureRecognizer/DDUIGestureRecognizer/Classes/DDUIPanGestureRecognizer/DDUIPanGestureRecognizer.swift b/Pods/DDUIGestureRecognizer/DDUIGestureRecognizer/Classes/DDUIPanGestureRecognizer/DDUIPanGestureRecognizer.swift index 4761b93..169c2b5 100644 --- a/Pods/DDUIGestureRecognizer/DDUIGestureRecognizer/Classes/DDUIPanGestureRecognizer/DDUIPanGestureRecognizer.swift +++ b/Pods/DDUIGestureRecognizer/DDUIGestureRecognizer/Classes/DDUIPanGestureRecognizer/DDUIPanGestureRecognizer.swift @@ -11,25 +11,30 @@ open class DDUIPanGestureRecognizer : UIPanGestureRecognizer { case bottom,top } - public enum ExpandLevel { case min,`default`,max } public struct PanGesValue { - public var from : PanGestureFromType = .bottom /// 从什么位置弹出 - public var minDisplayHeight : CGFloat = 0 /// 最小显示的高度 - public var defaultDisplayHeight : CGFloat = 0 /// 默认弹出的高度 - public var maxDisplayHeight : CGFloat = 0 /// 最大显示的高度 - public var criticalValue : CGFloat? /// 标记当前需要完全展开时的临界值 - public var expandLevel : ExpandLevel = .min /// 标记当前是否是展开的状态 + /// 从什么位置弹出 + public var from : PanGestureFromType = .bottom + /// 最小显示的高度 + public var minDisplayHeight : CGFloat = 0 + /// 默认弹出的高度 + public var defaultDisplayHeight : CGFloat = 0 + /// 最大显示的高度 + public var maxDisplayHeight : CGFloat = 0 + /// 标记当前需要完全展开时的拖动比例(0,1] + public var dragScale : CGFloat = 0.5 + /// 标记当前是否是展开的状态 + public var expandLevel : ExpandLevel = .min + internal var translationY : CGFloat = 0 internal var currentY : CGFloat = 0 } public var panGesValue = PanGesValue.init() - /// 会执行默认方法 /// - Parameter target: target public init() { @@ -43,7 +48,7 @@ open class DDUIPanGestureRecognizer : UIPanGestureRecognizer { } @objc fileprivate func panGesAction(ges: DDUIPanGestureRecognizer) { - getBaseValue(duration: 0.1) { viewFrame, minY, defaultY, maxY, currentY in + baseAction(duration: 0.1) { viewFrame, minY, defaultY, maxY, currentY in switch ges.state { case .began: currentY = viewFrame.origin.y @@ -57,15 +62,22 @@ open class DDUIPanGestureRecognizer : UIPanGestureRecognizer { currentY = (viewFrame.origin.y) + deltaY break case .ended: - /// 当拖动的距离到达某个值时就完全显示 - let criticalValue = ges.panGesValue.criticalValue ?? (ges.panGesValue.maxDisplayHeight / 2) - let criticalY = maxY - criticalValue - - if ges.panGesValue.currentY < criticalY { - currentY = minY - }else{ + /// 当currentY在maxY和defaultY之间时的临界值 + let criticalYBetweenOfMaxYAndDefaultY = maxY - (maxY - defaultY) * ges.panGesValue.dragScale + if ges.panGesValue.currentY <= maxY && ges.panGesValue.currentY > criticalYBetweenOfMaxYAndDefaultY { currentY = maxY + }else if ges.panGesValue.currentY > defaultY && ges.panGesValue.currentY <= criticalYBetweenOfMaxYAndDefaultY { + currentY = defaultY } + + /// 当currentY在minY和defaultY之间时 + let criticalYBetweenOfMinYAndDefaultY = defaultY - (defaultY - minY) * ges.panGesValue.dragScale + if ges.panGesValue.currentY <= defaultY && ges.panGesValue.currentY > criticalYBetweenOfMinYAndDefaultY { + currentY = defaultY + }else if ges.panGesValue.currentY > minY && ges.panGesValue.currentY <= criticalYBetweenOfMinYAndDefaultY { + currentY = minY + } + ges.panGesValue.translationY = 0 break default: @@ -75,7 +87,7 @@ open class DDUIPanGestureRecognizer : UIPanGestureRecognizer { } } - func getBaseValue(duration: TimeInterval,baseValueHandler: (_ viewFrame: CGRect, _ minY: CGFloat, _ defaultY: CGFloat, _ maxY: CGFloat,_ currentY: inout CGFloat) -> Void) { + func baseAction(duration: TimeInterval,baseActionHandler: (_ viewFrame: CGRect, _ minY: CGFloat, _ defaultY: CGFloat, _ maxY: CGFloat,_ currentY: inout CGFloat) -> Void) { guard let superView = view?.superview else { assert(false,"父类都没有,拖什么拖") return @@ -110,7 +122,7 @@ open class DDUIPanGestureRecognizer : UIPanGestureRecognizer { var currentY : CGFloat = 0.0 /// 计算值 - baseValueHandler(viewFrame,minY,defaultY,maxY,¤tY) + baseActionHandler(viewFrame,minY,defaultY,maxY,¤tY) /// 当到达最小y值时返回 if currentY < minY { @@ -122,8 +134,10 @@ open class DDUIPanGestureRecognizer : UIPanGestureRecognizer { return } + /// 记录当前的currentY panGesValue.currentY = currentY + /// 记录当前的expandLevel if panGesValue.currentY == minY { panGesValue.expandLevel = .max }else if panGesValue.currentY == maxY { @@ -142,7 +156,7 @@ open class DDUIPanGestureRecognizer : UIPanGestureRecognizer { } public func expand(_ expand: ExpandLevel) { - getBaseValue(duration: 0.25) { viewFrame, minY, defaultY, maxY, currentY in + baseAction(duration: 0.25) { viewFrame, minY, defaultY, maxY, currentY in if expand == .max { currentY = minY }else if expand == .min { @@ -153,14 +167,3 @@ open class DDUIPanGestureRecognizer : UIPanGestureRecognizer { } } } - -extension UIView { - public func addPanGesture(from: DDUIPanGestureRecognizer.PanGestureFromType, minDisplayHeight: CGFloat, maxDisplayHeight: CGFloat, criticalValue: CGFloat? = nil) { - let pan = DDUIPanGestureRecognizer.init() - pan.panGesValue.from = from - pan.panGesValue.minDisplayHeight = minDisplayHeight - pan.panGesValue.maxDisplayHeight = maxDisplayHeight - pan.panGesValue.criticalValue = criticalValue - addGestureRecognizer(pan) - } -} diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 5f21994..d676b88 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -283,9 +283,9 @@ PODS: - DDTimerSwiftKit_Private (0.2.1): - DDLogKit_Private/SwiftLog - DDToastKit_Private (0.1.2) - - DDUIGestureRecognizer (0.1.4): - - DDUIGestureRecognizer/DDUIPanGestureRecognizer (= 0.1.4) - - DDUIGestureRecognizer/DDUIPanGestureRecognizer (0.1.4) + - DDUIGestureRecognizer (0.1.5): + - DDUIGestureRecognizer/DDUIPanGestureRecognizer (= 0.1.5) + - DDUIGestureRecognizer/DDUIPanGestureRecognizer (0.1.5) - DDUtilsSwiftKit_Private (0.1.1): - DDUtilsSwiftKit_Private/ApplicationInfo (= 0.1.1) - DDUtilsSwiftKit_Private/DeviceInfo (= 0.1.1) @@ -352,7 +352,7 @@ DEPENDENCIES: - DDProgressHUDKit_Private - DDTimerSwiftKit_Private - DDToastKit_Private - - DDUIGestureRecognizer (= 0.1.4) + - DDUIGestureRecognizer (= 0.1.5) - DDUtilsSwiftKit_Private - DDWebImageKit_Private - DDZFPlayerKit_Private/ControlView @@ -441,7 +441,7 @@ SPEC CHECKSUMS: DDProgressHUDKit_Private: 1e219062ddeb7801a4bb13b367efa1f3fbf17f1e DDTimerSwiftKit_Private: cce3fe58b1b581fe4cddb3fb84fcde31b4e83541 DDToastKit_Private: b6ae3709d110cadca503a037419f3709d1755256 - DDUIGestureRecognizer: 207a58f9c0123664ff8d9d323d94e1481975b696 + DDUIGestureRecognizer: e7b1b6d4d73e2fc2c48dcfb38655881814d094ff DDUtilsSwiftKit_Private: 03575cb3204cd43f3521049263f4b6cae3e64700 DDWebImageKit_Private: b905111547e44626773b729bae9030403a9a0c76 DDZFPlayerKit_Private: 5f63a8101e35ffd7b2568f551cbf33b8bedc48ba @@ -461,6 +461,6 @@ SPEC CHECKSUMS: SwiftyRSA: 8c6dd1ea7db1b8dc4fb517a202f88bb1354bc2c6 ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b -PODFILE CHECKSUM: b8d52ee7c2693a0587d0eddb0f63d9e164d97c2d +PODFILE CHECKSUM: 42053b92ac9e24ed76797463ba14cc31e3771ffc COCOAPODS: 1.11.3