Представление интерфейса обрезки изображения - PullRequest
4 голосов
/ 21 апреля 2010

Я пытаюсь спроектировать пользовательский интерфейс для обрезки изображений в ОС iphone и подозреваю, что я иду трудным путем. Моя цель - в значительной степени то, что дуэт Tapbots сделал с Pastebot. В этом приложении они затемняют исходное изображение, но обеспечивают подвижное и изменяемое представление обрезки, а изображение, которое вы обрезаете, находится в масштабируемом виде с прокруткой; при изменении размера или перемещении нижележащего изображения вид обрезки корректируется.

Я смоделировал составное изображение, которое даст представление о дизайне, который мне нужен, наряду с тем, как у меня сейчас настроена иерархия представлений. альтернативный текст http://grab.by/3TN4

Подход, с которого я начал, заключается в следующем: UIImageView с изображением для обрезки находится в виде прокрутки, простой вид UIView с черной заливкой и подходящей настройкой прозрачности / альфа добавлен перед изображением. Затем я использую пользовательский UIView, который является родственным для scrollview на более высоком уровне, который реализует метод drawRect: и по большей части вызывает CGImageCreateWithImageInRect, чтобы получить часть растрового изображения изображения, которая соответствует позиции представления обрезки, и рисует, что к CGContext.

в viewcontroller Я использую методы UIScrollViewDelegate для отслеживания прокрутки и передачи этих изменений в пользовательский режим обрезки UIView, чтобы он оставался синхронизированным с прокруткой contentOffset. Это многое, наконец, работает. Но попытка сохранить синхронизацию при изменении масштаба прокрутки прокрутки - это когда я решил, что должен обратиться за помощью.

Ищете предложения или рекомендации. Мой первоначальный подход просто кажется больше работы, чем требуется.

Может ли это быть сделано с помощью маскирующего слоя в ImageView? И если да, то как мне настроить отслеживание для перемещения и изменения размера прямоугольника обрезки? Мой опыт работы со слоями не нулевой, но пока очень ограниченный.

Ответы [ 2 ]

2 голосов
/ 15 сентября 2011

Ради записи - готовый компонент на элементах управления Какао

http://cocoacontrols.com/platforms/ios/controls/imagecropper

2 голосов
/ 21 апреля 2010

Я обнаружил, что часто лучший пользовательский интерфейс для обрезки результатов, если вы думаете об управлении положением и размером (и даже вращением) изображения под простой неподвижной маской или прямоугольником обрезки, вместо того, чтобы пытаться переместить маску или прямоугольник обрезки на вершине неподвижного изображения. Это особенно верно, если вы всегда хотите, чтобы обрезанное изображение имело заданную пропорцию и ориентацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...