UIImage прозрачный с формой - PullRequest
2 голосов
/ 12 марта 2012

В моем приложении для iPhone у меня есть два UIImageViews, которые являются кругами.Я использовал этот код для этого:

manPic.layer.cornerRadius=manPic.frame.size.width/2;
manPic.layer.masksToBounds=YES;
womanPic.layer.cornerRadius=womanPic.frame.size.width/2;
womanPic.layer.masksToBounds=YES;

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

У вас есть идеи, как я могу это сделать?

1 Ответ

1 голос
/ 12 марта 2012

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

Но идея не требует специального кода для рисования (в случае, еслицвет окружающего вида - один сплошной цвет).Поместите оба изображения на ваш взгляд.Затем добавьте еще один квадратный размер поверх изображений, чтобы «замаскировать» перекрывающуюся область.Включите отсечение .clipsToBounds = YES для этого представления.Снова добавьте два изображения в это представление и установите их .alpha на 0.5 (или то, что вы хотите) каждое.

Таким образом, структура будет:

mainview
-> imageView
-> imageView
-> masking view (clipsToBounds=YES, backgroundColor=mainview.backgroundColor)
    -> imageView with alpha
    -> imageView with alpha
...