Из яблочной документации:
Вы должны ограничить любой рисунок прямоугольником, указанным в параметре rect.
Что, по-видимому, означает, что переданный 'прямоугольник' является всего лишь предложением. Он не создает его для вас.
Таким образом, если вы передаете точное подчиненное, вам следует перевести контекст на значения x и y, которые вы определили.
override func draw(_ rect: CGRect) {
let context = UIGraphicsGetCurrentContext()!
context.translateBy(x: rect.minX, y: rect.minY)
// Do your drawing here...
}