2

「Interface Builder の新機能」セッション ビデオを見て、表示されたコードを複製しようとしましたが、残念ながらカスタム クラスにビューを割り当てると、次の@IBDesignable2 つのエラーが発生します。

Main.storyboard: エラー: ライブ ビュー: 自動レイアウト ステータスの更新に失敗しました: バンドル「swiftTest」は、実行可能ファイルが読み込めないため、読み込めませんでした。

Main.storyboard: エラー: ライブ ビュー: _TtC9swiftTest14ControllerView のインスタンスをレンダリングできませんでした: 実行可能ファイルが読み込めないため、バンドル「swiftTest」を読み込めませんでした。

ビデオの後半で、ライブ ビューを作成するには、次の手順を実行する必要があることを確認しました。 1. フレームワークを作成します。 2. クラスを作成します。 3. デザイン可能としてマークします。

1段目はどうやって作るの?

ありがとう

4

5 に答える 5

3

現時点で理解しているように ( Xcode 6 Beta 3 より前)、 @IBDesignable はのフレームワーク ターゲットで宣言されたビューからのみ機能します。ただし、さまざまなリンクで説明されているように「プラス」ボタンがなかったため、追加するのにも苦労しました(プロジェクトとターゲットリストを非表示にする矢印オプションがオフになっているため)。

したがって、現在のプロジェクト ターゲットを選択し、xcode メニュー オプションを使用します: Editor > Add target... 次に、 Framework & Library > Cocoa Touch Frameworkなどを選択します。

ところで、@IBDesignable をテストするために、このチュートリアルは出発点として完璧に機能しました: http://www.weheartswift.com/make-awesome-ui-components-ios-8-using-swift-xcode-6/

そのチュートリアルで注意すべき小さいながらも重要なことの 1 つ (完全な github コード リストに従うのではなく、画面上に従う場合) は、ビュー クラスの前に @IBDesignable を追加/装飾する必要があることです (例: class CustomView : UIView {... } @IBDesignable class CustomView である必要があります: UIView {...}

于 2014-06-12T07:19:15.107 に答える
2

現在のプロジェクトのターゲットとして新しいフレームワークを作成し、このフレームワークにライブ ビューを追加する必要があります。メイン ターゲットの [全般] タブで、[組み込みバイナリ] セクションにフレームワークが表示されます。

于 2014-06-05T20:46:49.760 に答える
1

ライブビューが機能するプロジェクトがあり、ある時点でこれらのエラーメッセージも表示されました. XCodeを閉じて再起動すると、これはなくなりました。

于 2014-06-11T07:06:45.670 に答える
1

Xcode 6 Beta 5でSwiftを使用すると、非常にうまく(そして簡単に) 動作します。


Xcode 6 Beta 5では、フレームワークを追加する必要がないことを確認しました(たとえば、新しいプロジェクト ターゲットを追加するときに表示されるダイアログのフレームワークの下にある Cocoa Touch フレームワーク オプション)。プロジェクトに IBDesignable.h を追加する必要もありませんでした。 質問への最初の回答にリンクされている weheartswift.com の記事によると、どちらも時代遅れの要件のようです。

私がする必要があったのは:

  1. キーワード@IBDesignableを使用して、カスタム Swift クラス ソース ファイルのクラス定義をプレフィックスします。

  2. @IBInspectableを使用して IB Attributes Inspector に表示したいプレフィックス変数(IB はいくつかの一般的な変数タイプを認識します)。

次に、カスタム コンポーネント (UIControl サブクラス) の名前を IB の「クラス」名ファイル (右側のペインの [Identity Inspector] タブの下) に割り当てた後、「UIView」を置き換えます。たとえば、最初に IB にドラッグした UIView プレースホルダー オブジェクトのクラス名です。 VC のビュー -- IB のコンテンツ ビュー コンポーネント リストからカスタム コンポーネントを選択すると、すべてのカスタム クラスの検査可能な項目が IB 属性インスペクターに表示されるのを見ました!! とてもクールです。


注: 最初、XCode では、1 つの変数に @IBInspectable のプレフィックスを付けることができるだけでした。後続のものにエラーが表示されました。その後、突然動作するようになり、その後は問題がなくなりました。タイプミスだったのか、Xcode でプロジェクトのインデックスを再作成してコードをプリコンパイルまたは解析するのに時間がかかったのかはわかりません。

于 2015-02-08T17:30:36.497 に答える
0

@IBDesignable と @IBInspectable についてコーディングしています。

まず、あなたのような2つのエラーが発生しました。

次に、私が書いたコードを変更し、

私のgithubからコードをチェックアウトできます

幸運を。

于 2014-06-11T04:00:25.047 に答える