Откуда это знать? Когда UIColor устанавливает заливку, а UIGraphicsImageRendererContext знает, как заливать
Я наткнулся на пример использования
UIGraphicsImageRender
рисовать репетитора на Medium. Пример кода выглядит следующим образом:
let renderer = UIGraphicsImageRenderer(size: CGSize(width: 20, height: 20))
let img = renderer.image { (ctx) in
let size = renderer.format.bounds.size
UIColor.red.setFill()
ctx.fill(CGRect(x: 0, y: 0, width: size.width, height: size.height))
}
В приведенном выше коде
UIColor.red.setFill()
очевидно только делает указанный цвет, то есть красный, готовым заполнить определенную форму. Однако волшебным образом кажется, что ctx, который является a, получил уведомление о том, что он заполнит
CGRect
форма с красным цветом!
Чисто из кода здесь я не вижу связи между методом экземпляра
setFill()
и метод экземпляра
fill(_: CGRect)
. Итак, как это узнать? Как
UIGraphicsImageRendererContext
заполняется, когда
UIColor
наборы заполнить?
Спасибо.
1 ответ
Чисто из кода здесь я не вижу связи между методом экземпляра UIColor setFill () и UIGraphicsImageRendererContext
Он знает, потому что когда вы говорите, вы находитесь в графическом контексте.
В каждый момент, когда ваш код выполняется, текущий графический контекст либо есть, либо нет . Во время закрытия средства рендеринга графического изображения есть одно - графический контекст, который будет использоваться для формирования изображения. Вот что значит быть в
Следовательно, эта и подобные команды UIColor и UIBezierPath, которые (неявно) направлены на текущий графический контекст, будут успешными, если заданы в этом закрытии. Они также преуспеют, скажем, в UIView
Попробуйте сказать