@ Мухаммад Вакас Бхати сделал хороший вопрос, спрашивая о кадре.
Я использовал addSublayer, чтобы нарисовать созданный мной путь на экране. Моя ошибка была в том, что я устанавливал значения в функции draw () и добавлял CAShapeLayer с addSublayer, но рамка для кнопки не была установлена.
Даже если нарисованный слой является подслоем кнопки, он отображается в координатах и размерах, указанных для слоя, без какого-либо отношения к рамке его «родительской» кнопки.
Кадр кнопки может быть (0, 0, 0, 0) или (0, 0, 100, 100), а изображение, нарисованное в addSublayer, все еще может иметь значение (250, 200, 75, 80), так что видимое изображение будет находиться в одной точке экрана, но фактическая кнопка находится в несвязанном месте с тем, что видно в ее подслое.