У меня есть следующий код, который рисует закругленный прямоугольник с небольшой стрелкой в верхней части. Я хочу, чтобы иметь возможность создать метод, который либо рисует стрелку вверху, влево, вправо или снизу в зависимости от того, что я укажу (я, скорее всего, перейду в перечисление typedef).Как изменить направление стрелки этого UIBezierPath
Вот что мой код создает прямо сейчас:
Может кто-нибудь помочь мне сделать этот код более динамичным/гибким, так что я могу это сделать?
CGContextBeginPath(context);
CGContextMoveToPoint(context, kBubbleBorderRadius + 0.5f, kCaretHeight + 0.5f);
CGContextAddLineToPoint(context, round(currentFrame.size.width/2.0f - (kCaretHeight * 2.0)/2.0f) + 0.5f, kCaretHeight + 0.5f);
CGContextAddLineToPoint(context, round(currentFrame.size.width/2.0f) + 0.5f, 0.5f);
CGContextAddLineToPoint(context, round(currentFrame.size.width/2.0f + (kCaretHeight * 2.0)/2.0f) + 0.5f, kCaretHeight + 0.5f);
CGContextAddArcToPoint(context, currentFrame.size.width - 0.5f, kCaretHeight + 0.5f, currentFrame.size.width- 0.5f, currentFrame.size.height - 0.5f, kBubbleBorderRadius);
CGContextAddArcToPoint(context, currentFrame.size.width - 0.5f, currentFrame.size.height - 0.5f, round(currentFrame.size.width/2.0f + (kCaretHeight * 2.0)/2.0f) + 0.5f, currentFrame.size.height - 0.5f, kBubbleBorderRadius);
CGContextAddArcToPoint(context, 0.5f, currentFrame.size.height - 0.5f, 0.5f, kCaretHeight + 0.5f, kBubbleBorderRadius);
CGContextAddArcToPoint(context, 0.5f, kCaretHeight + 0.5f, currentFrame.size.width - 0.5f, kCaretHeight + 0.5f, kBubbleBorderRadius);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFill);
Не могли бы вы предоставить желаемое графическое представление ... – Injectios
@Injectios добавили изображение текущего генерации кода на вопрос, спасибо. –
Это проще, если вы нарисуете треугольник отдельно от тела. – thelaws