Вставка кода PaintCode в UIImageView в Swift

Я экспериментирую с PaintCode. В качестве примера я импортировал абстрактный файл чертежа Illustrator, который создал приведенный ниже код Безье Swift.

На моей раскадровке у меня есть UIImageView с именем exampleImageView, который я хочу отобразить код PaintCode и иметь возможность масштабировать полученное изображение, как векторную графику, в разных размерах, например. 1x, 2,5x, 5x и т. д. (т. е. гладкие непиксельные линии и кривые).

Вопросы:

1. Как отобразить приведенный ниже код в виде изображения в UIImageView с именем exampleImageView в Xcode?

2 - Как отобразить приведенный ниже код в UIView с именем exampleView в Xcode?

3 - Можно ли увеличить или уменьшить приведенный ниже код (например, векторную графику), и если да, то как в Xcode?

Ожидаемое изображение:

введите здесь описание изображения

Код PaintCode:

//// General Declarations
let context = UIGraphicsGetCurrentContext()

//// Color Declarations
let fillColor = UIColor(red: 0.087, green: 0.086, blue: 0.083, alpha: 1.000)

//// Group 2
CGContextSaveGState(context)
CGContextSetAlpha(context, 0.75)
CGContextBeginTransparencyLayer(context, nil)


//// Bezier Drawing
let bezierPath = UIBezierPath()
bezierPath.moveToPoint(CGPointMake(26.08, 23.65))
bezierPath.addCurveToPoint(CGPointMake(61.71, 12.5), controlPoint1: CGPointMake(38.43, 23.65), controlPoint2: CGPointMake(54.42, 18.61))
bezierPath.addCurveToPoint(CGPointMake(52.65, 1.35), controlPoint1: CGPointMake(69, 6.38), controlPoint2: CGPointMake(64.99, 1.35))
bezierPath.addCurveToPoint(CGPointMake(16.91, 12.5), controlPoint1: CGPointMake(40.2, 1.35), controlPoint2: CGPointMake(24.2, 6.38))
bezierPath.addCurveToPoint(CGPointMake(26.08, 23.65), controlPoint1: CGPointMake(9.63, 18.61), controlPoint2: CGPointMake(13.63, 23.65))
bezierPath.closePath()
bezierPath.moveToPoint(CGPointMake(48.14, 25))
bezierPath.addLineToPoint(CGPointMake(0.79, 25))
bezierPath.addCurveToPoint(CGPointMake(0.24, 24.35), controlPoint1: CGPointMake(-0.02, 25), controlPoint2: CGPointMake(-0.21, 24.73))
bezierPath.addCurveToPoint(CGPointMake(2.41, 23.65), controlPoint1: CGPointMake(0.76, 23.92), controlPoint2: CGPointMake(1.59, 23.65))
bezierPath.moveToPoint(CGPointMake(14.36, 12.5))
bezierPath.addCurveToPoint(CGPointMake(54.26, 0), controlPoint1: CGPointMake(22.62, 5.57), controlPoint2: CGPointMake(40.59, 0))
bezierPath.addCurveToPoint(CGPointMake(64.36, 12.5), controlPoint1: CGPointMake(67.93, 0), controlPoint2: CGPointMake(72.62, 5.57))
bezierPath.addCurveToPoint(CGPointMake(37.3, 23.65), controlPoint1: CGPointMake(58.56, 17.37), controlPoint2: CGPointMake(47.81, 21.59))
bezierPath.addLineToPoint(CGPointMake(49.75, 23.65))
fillColor.setFill()
bezierPath.fill()


CGContextEndTransparencyLayer(context)
CGContextRestoreGState(context)

person user4806509    schedule 05.03.2016    source источник
comment
Вам нужно использовать UIImageView? Этот код предназначен для размещения в drawRect: из UIView, но вы всегда можете создайте контекст изображения, нарисуйте свою кривую, затем получите изображение и назначьте его UIImageView, если вы действительно хотите.   -  person Hamish    schedule 05.03.2016
comment
@originaluser2 Не обязательно. Лучше UIImageView, но можно и UIView. Я обновил вопрос как для UIImageView, так и для UIView, чтобы узнать о различиях в способах реализации кода.   -  person user4806509    schedule 05.03.2016


Ответы (1)


1. Как отобразить приведенный ниже код в виде изображения в UIImageView с именем exampleImageView?

Изображение можно создать в PaintCode, но я не думаю, что это подходит здесь. Для начала создайте метод drawing в PaintCode.

2 - Можно ли увеличить или уменьшить приведенный ниже код (например, как векторную графику), и если да, то как?

В PaintCode вы можете изменить размер объекта с помощью фреймов.

Посмотрите руководство по динамическим фигурам, в котором рассмотрены и то, и другое.

person MirekE    schedule 05.03.2016
comment
Извините, я имел в виду, как этот код можно поместить в Xcode в UIImageView или UIView и изменить размер в Xcode. - person user4806509; 05.03.2016
comment
Код — это только часть того, что генерирует PaintCode. Вы хотите использовать сгенерированный метод рисования (или сгенерированный код изображения) — это сэкономит ваше время. Создайте метод рисования и экспортируйте код из PaintCode в свой проект, чтобы понять, что я имею в виду. Конкретный код выше не является динамическим. Это жестко закодировано. В учебнике, на который я ссылаюсь, показано, как сделать его динамичным. Есть и другие способы, которые могут лучше соответствовать вашей цели, и другие учебные пособия на их веб-странице адресованы этому. - person MirekE; 05.03.2016