Files

42 lines
1.1 KiB
Swift

//
// ScrollRects.swift
// TableViewDragger
//
// Created by Kyohei Ito on 2017/12/08.
// Copyright © 2017 kyohei_ito. All rights reserved.
//
import Foundation
import CoreImage
struct ScrollRects {
private let maxDistance: CGFloat = 10
private let size: CGSize
private let scrollRange: CGFloat
let topRect: CGRect
let bottomRect: CGRect
init(size: CGSize) {
self.size = size
scrollRange = size.height / 2.5
let scrollSize = CGSize(width: size.width, height: scrollRange)
topRect = CGRect(origin: .zero, size: scrollSize)
bottomRect = CGRect(origin: CGPoint(x: 0, y: size.height - scrollRange), size: scrollSize)
}
func distance(at point: CGPoint) -> CGFloat {
let ratio: CGFloat
if topRect.contains(point) {
ratio = -(scrollRange - point.y)
} else if bottomRect.contains(point) {
ratio = point.y - (size.height - scrollRange)
} else {
ratio = 0
}
return max(min(ratio / 30, maxDistance), -maxDistance)
}
}