Я работаю над созданием своего первого пользовательского UIView и изучаю семантику метода drawRect.
Я встречал совет (совет, который имеет смысл для меня) рисовать тольков рамках CGRect
, который передается в качестве аргумента, вместо того, чтобы всегда рисовать все в пределах UIView
* bounds
:
- (void)drawRect:(CGRect)aRect {
// draw, draw, draw...
}
Что я пытаюсь выяснить сейчасесть ли какие-либо ограничения относительно того, какие отношения существуют между bounds
и aRect
, который передается внутрь. В частности, мне интересно, гарантированно ли aRect
будет полностью внутри bounds
, или это можетвыходит за пределы bounds
.
Если какой-либо код за пределами моего UIView
пройдет, например, очень большой CGRect в setNeedsDisplayInRect:(NSRect)invalidRect
, базовый код просто слепо передаст тот же CGRect в мой drawRect
метод, или он делает какое-то пересечение и всегда проходит в разумный прямоугольник?
Я не нашел ответа на это ни в одной документации.Это то, о чем мне даже не стоит беспокоиться?Или я должен всегда пересекать bounds
и aRect
самостоятельно?