0

我一直在我拥有的一个项目上应用实时视图,该项目的大部分 UI 都是用贝塞尔曲线绘制的,到目前为止,在工作了这么长时间之后,最终看到应用程序在 Interface Builder 中变得活跃起来,除了黑屏之外什么也没有看到,这简直就是魔法所有的时间。

有一部分是我用指向起点的手画一条线。添加所有元素后,我将视图旋转到一个偏移量,并在另一个方向上以相同的量旋转手以使其指向笔直。运行应用程序时,这始终运行良好,因此此代码有效。

当我添加 IB_DESIGNABLE 时,我注意到手不见了,但我可以通过使用bundle 技巧来纠正它。手以正确的量旋转。但视图本身并非如此。

这是相关代码:

- (void)drawRect:(CGRect)rect
{
    // ....lots of drawing code.....

    float totalRotationRadians = M_PI * 2 * -.12;
    self.transform = CGAffineTransformMakeRotation(totalRotationRadians);
    self.hand.transform = CGAffineTransformMakeRotation(-totalRotationRadians);
}

这是它在 Interface Builder 中的样子:

Interface Builder 中的实时渲染

这是我运行它时的样子:

当我在模拟器上运行它时

有一些细微的差异,因为有些东西会根据它所在的视图的大小进行缩放,但这就是它应该如何工作的方式。只有缺乏旋转才是真正的关闭。

4

1 回答 1

0

我在互联网上遇到各种关于人们无法轮换的评论,以及一篇我再也找不到的博客文章。他们都说 CALayer 旋转现在在实时视图中不起作用。

我想我们将不得不等待

于 2014-11-05T21:47:53.393 回答