У меня есть вертикальная линия (UIView), размер которой мне нужно изменить. В настоящее время я делаю это с помощью жеста щипка, но теперь мне нужно сделать это с помощью жеста смахивания и увеличить или уменьшить высоту со стороны, с которой я смахиваю. Так, например, если я прокручиваю вниз от ВЕРХНЕГО КОНЦА линии, размер линии должен уменьшаться только сверху. Нижняя часть должна оставаться закрепленной в исходном положении. Как мне это сделать?
Мне также нужно иметь возможность перемещать изображение, что я уже реализовал с помощью UIPanGestureRecognizer.
Вот с чем я поигрался: у меня есть небольшой UIView на верхнем конце вертикальной линии и один на нижнем конце линии. Я использую их как маркеры. Теперь я могу перемещать верхний маркер вверх и вниз. Мне нужно изменить размер линии на расстояние между двумя маркерами и сохранить нижний конец линии в том же положении, что и нижний маркер.
Это то, что у меня есть
func draggedViewForTopMarker(sender: UIPanGestureRecognizer) {
//To move the top marker
var translation = sender.translationInView(self.view)
sender.view!.center = CGPointMake(sender.view!.center.x, sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
//Find distance between the markers
var distanceBetweenMarkers = (sender.view!.center.y + translation.y) - self.bottomMarker.center.y
print(distanceBetweenMarkers)
if (distanceBetweenMarkers < 0) {
distanceBetweenMarkers = distanceBetweenMarkers*(-1)
}
//**TRYING** to resize the line to have the same height as the distance between the two markers AND make sure its positioned between the markers and the bottom end of the line is still in the same place as it was originally.
var newFrame = CGRectMake(sender.view!.center.x, distanceBetweenMarkers/2, vertical.frame.width, distanceBetweenMarkers)
vertical.frame = newFrame
}
Я также открыт для разных подходов или решения проблемы, которая у меня есть с этим подходом!
Вы можете проверить Photo Measures Lite в App Store, чтобы лучше понять, что я имею в виду, когда говорю «изменить размер линии только с одной стороны».
Большое спасибо!