私は、ベジエで描画されたほとんどの 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 では次のようになります。
これを実行すると、次のようになります。
ビューのサイズに応じてスケーリングされるものがあるため、わずかな違いがありますが、それが機能するはずです。回転の無さだけは本当にズレます。