2015-10-17 2 views
2

Когда я использую CAShapeLayer и создаю прямоугольную форму, путь начинается с начала прямоугольника (верхний левый угол) и рисуется по часовой стрелке. Теперь, если я хочу нарисовать только часть формы, я использую strokeStart и strokeEnd. Проблема возникает, когда я хочу нарисовать часть, состоящую из конечных точек пути. В этом случае путь закрывается и начинается и заканчивается в верхнем левом углу прямоугольника. Когда я устанавливаю strokeStart=0.8 и strokeEnd=0.2 Я надеюсь, что он нарисовал последний раздел пути и немного с самого начала пути. Однако это не работает. Есть ли какие-либо идеи или рекомендации, как это сделать?CAShapeLayer нарисовать частично через конечные точки пути

Update:

Добавление изображения уточнить, что я имею в виду выше. Я хочу анимацию, которая рисует небольшое количество прямоугольника, и эта нарисованная часть крутится над прямоугольником: enter image description here

+0

Немного сложно следовать. Может помочь, если вы разместите изображение того, что вы описываете. –

+0

@BeauYoung сделано! – frangulyan

+0

А я понимаю. Немного сложно с прямоугольником, но с кругом его немного легче, так как вы можете просто повернуть круг и по-прежнему начать ход с 0.0. Помогает ли здесь ответ? http://stackoverflow.com/questions/13333214/cabasicanimation-setting-start-stroke-position –

ответ

2

Короткий ответ: я не думаю, что вы можете это сделать, по крайней мере, не с одним путем, который будет нарисуйте любой из сегментов в ваших примерах. Я уверен, что strokeStart должен быть меньше, чем strokeEnd.

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

+0

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

Смежные вопросы