2015-03-15 3 views
0

Я уверен, что это очень простая вещь, но я не могу поверить в логику.Вычитайте UIView из другого UIView в Swift

У меня есть два UIViews. Один черный, полупрозрачный и «полноэкранный» («overlayView»), еще один сверху, меньший и масштабируемый («cropView»). Это в значительной степени настройка просмотра посещений, где я хочу «сгладить» области основного изображения, которые не обрезаются.

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

Это то, что я прямо сейчас:

This is what it looks like

Это то, что я хотел бы, чтобы это выглядело как:

This is what I want it to look like

Как достичь этого результата в Swift?

+0

Показать код за что у вас есть – Wain

+0

Не много кода для отображения. Это всего лишь два простых вида друг над другом с разными размерами кадров. – schnabler

+0

Так вы пытались использовать маски или пути рисования в наложении? – Wain

ответ

1

Может быть другое решение для рисования, но в основном у вас есть 4 области, которые необходимо обрабатывать. Возьмите квадратную область над и под пространством с полной шириной и добавьте правую и левую сторону между ними с ограничениями друг к другу.

+0

Я думал об этом, но это кажется грязным. Я надеялся, что будет более элегантное решение с использованием масок. – schnabler

+0

хорошо, кажется менее элегантным, но другое решение - сделать изображение с центральной частью, затем сделать эффект оттенка и добавить обратно изображение поверх него. Это решение имеет недостаток, который вам нужно реализовать самим самим чертежом, например, scrollview идеально подходит для масштабирования, слайда и т. Д. Для любого чертежа с CALayer потребуется такая же логика. – Christian

+0

Хорошо, это прекрасно работает и, похоже, не имеет недостатков. Благодаря! – schnabler

Смежные вопросы