Как ограничить отображение CALayer под прямоугольником - PullRequest
0 голосов
/ 10 июня 2019

У меня есть CALayer, который отображает статический контент.Пользователь может динамически передать подчиненное в его кадре, и я хочу, чтобы динамически ограничить видимую его часть этим подчиненным.Оставшаяся часть должна быть черной.Как правильно это сделать?

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

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

0 голосов
/ 11 июня 2019

Из яблочной документации:

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

Что, по-видимому, означает, что переданный 'прямоугольник' является всего лишь предложением. Он не создает его для вас.

Таким образом, если вы передаете точное подчиненное, вам следует перевести контекст на значения x и y, которые вы определили.

override func draw(_ rect: CGRect) {
    let context = UIGraphicsGetCurrentContext()!
    context.translateBy(x: rect.minX, y: rect.minY)
    // Do your drawing here...
}
...