2015-07-12 83 views
3

我使用PaintCode为我的xamarin.ios应用程序生成一个stylekit。我有一个简单的徽标,我从Illustrator中粘贴到PaintCode中。一切看起来都很好,我有一个框架,生成的绘制方法需要一个矩形。如何在调整PaintCode生成视图的大小时保持纵横比?

在某一点上,我调整了它在我的故事板中的大小,但它不能保持高宽比,所以显然这个标志看起来是错误的,这取决于UIView的大小。

如何添加变量/表达式到paintcode,以便生成的代码在调整UIView大小时自动保持纵横比?

谢谢。

+0

自动宽高比约束? – Aladin

+0

不,这是特定于Paintcode(paintcodeapp.com)。 Paintcode为vector资源生成一个绘图方法,但默认情况下它不能保持纵横比,我假定这需要手动实现,但我不知道如何。 – jmichas

+0

这是一个UIView,所以你可以设置约束我猜 – Aladin

回答

5

这可能与变量。尝试创建两个变量是这样的:

  1. 数字“宽度”与例如100的值。
  2. 表达式“高度”,值为width/2。这将保持2:1的比例,根据需要进行更改。

然后将这两个附加到您的框架对象的宽度和高度属性。在此之后,产生的方法只需要一个数字参数 - 在Width

- (void)drawMyCanvasWithWidth: (CGFloat)width; 

应该是这样的形象:

Preview

然后,只需将您的所需的宽度和高度将是自动计算。


这也将有可能维持该方法的CGRect参数,并找到恰当使用矩形变量。如果你问,我会补充一点。

+0

是的,这就是我想出来的。我为高宽比表达式设置变量,然后使用这些变量生成调整后的高度,并将其设置为我的帧的高度。但是,我需要对其进行优化,使其无论是高度还是宽度都是固定值。你的代码固定宽度,但如果你制作UIView并改变高度,你可以剪切图像。我想要它,所以如果高度会剪切图像,那么高度将用作固定值,然后生成一个宽度。我认为这可以用在paintcode中使用makeRect()的表达式。 – jmichas

+1

好,所以这工作,我有一个Rect变量设置为画布的大小。然后我有一个使用常量的宽高比变量。然后我创建了一个表达式:'logoMarkFrame.height <(logoMarkFrame.width/logoMarkAspectRatio) ? (0,0,logoMarkFrame.width,logoMarkFrame.width/logoMarkAspectRatio)'然后将其连接到我的画布中的框架,它工作正常。下一步,我认为当高度小于宽度/ ar时,它会保持居中。 – jmichas

相关问题