0

私は、ベジエで描画されたほとんどの UI をビルドするプロジェクトにライブビューを適用してきましたが、これまでのところ、長い間作業した後、黒い画面しか表示されずに Interface Builder でアプリケーションが生き返るのを見るのは魔法に過ぎませんでした。いつも。

手でスタートを指して線を引く部分があります。すべての要素を追加した後、ビューを回転させてオフセットし、同じ量で手を反対方向に回転させて、まっすぐに向けます。これは、アプリの実行時に常に正常に機能するため、このコードは機能します。

IB_DESIGNABLE を追加したときに手が欠けていることに気付きましたが、バンドル トリックを使用して修正できました。手は正しい量で回転します。しかし、ビュー自体はそうではありません。

これは関連するコードです:

- (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 に答える