Изменение прозрачности NSView

#iphone #objective-c #cocoa #drawing #nsview

#iPhone #objective-c #cocoa #рисование #nsview

Вопрос:

Я хотел бы иметь NSView, одна сторона которого затухала бы до альфа 0,0f. Какова наилучшая практика для этого? Этот эффект аналогичен растушевке выделения в Photoshop или Pixelmator.

Ответ №1:

Создайте в своем представлении резервный слой хранилища (ознакомьтесь со NSView wantsLayer и layer свойствами). Создайте CAGradientLayer и установите для него маску вашего резервного слоя хранилища.

Комментарии:

1. Будет ли режим просмотра со слоями удалять сглаживание из моего текста?

2. Я не знаю. Попробуйте и убедитесь.

Ответ №2:

Самый простой способ сделать это — нарисовать градиент и drawRect: вызвать CGContextClipToMask() в вашем представлении изображение градиента в качестве маски.

Ответ №3:

Создайте изображение в формате .png, которое начинается с прозрачного и затемняется до цвета, который вы хотите, чтобы затемнялся в вашем NSView.

Затем добавьте элемент изображения, который покрывает весь NSView, и отобразите изображение в формате png, созданное вами ранее.

Этого должно хватить.

Комментарии:

1. Я думал об этом, но это был не тот подход, который я действительно искал