Так что подумайте.Если вы возьмете правый нижний угол и начнете перетаскивать, вам нужно не только изменить местоположение этого угла, но также изменить положение X в верхнем правом углу и положение Y в нижнем левом углу, чтобы полученная форма всегда былапрямоугольник.
В качестве альтернативы, вы можете использовать CGRect вместо случайного четырехугольника, а затем просто выяснить, какие свойства прямоугольника вам нужно изменить для каждого угла (для нижнего правого угла вы просто редактируете высотуи ширина. В верхнем правом углу вы должны изменить высоту, ширину и origin.y
. для верхнего левого, вам нужно изменить высоту, ширину, origin.x
и origin.y
. Для нижнего левого вынеобходимо изменить высоту, ширину и origin.x
.
Вам также необходимо подумать о том, что делать, если пользователь перетаскивает прямоугольник до нулевого размера или после нуля, чтобы углы пересекались и угол, которыйбыл внизу слева, теперь вверху справа. Вы разрешаете это или просто ограничиваете перетаскивание, чтобы его нельзя было перетаскивать меньше, чем наминимальный размер?Любой подход верен, но вам нужно продумать его, кодировать и тестировать.
Это не так сложно, и это просто графическое программирование.Вы бы многому научились, если бы делали это сами, а не использовали сторонние фреймворки.