問題タブ [ibinspectable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
11 に答える
46429 参照

ios - IB_DESIGNABLE、IBInspectable -- インターフェイス ビルダーが更新されない

次のコードセットがあります。

CustomView.h

CustomView.m


(Swift の参考として、この問題は Swift コードでも発生していました)

CustomView.swift


ストーリーボードのビュー コントローラーにを追加し、UIViewそのサブクラスを に設定しましたCustomView

ここに画像の説明を入力

これにより、「Designables」行が追加されます。「更新中」でスタックし、ツールチップには「ターゲットがビルドされるのを待っています」と表示されます。この状態から変わることはありません。

属性の検査に移ると、次のIBInspectableプロパティを設定できます。

ここに画像の説明を入力

一度設定すると、「ユーザー定義のランタイム属性」にも表示されます。

ここに画像の説明を入力

ただし、「Designables」ステータスは、同じツールチップで「更新中」を超えることはありません(Cmd + Bビルドを数回試しましたが、何も変わりません)。

さらに、IBInspectableプロパティを設定すると、それぞれについて警告が表示されます。

IBDesignables - 「UIView」のインスタンスでキー パス「borderColor」のユーザー定義のランタイム属性を無視しています ... このクラスは、キー borderColor のキー値コーディングに準拠していません。

生成された警告のスクリーンショット:

ここに画像の説明を入力


私はキー値コーディング準拠の問題に精通しており、一般的にそれらを解決する方法を知っています...しかし、ここでこの問題を解決する方法がわかりません。ビューの ID インスペクタによると、ビューは「CustomView」です (これらのプロパティを持たない通常の「UIView」ではありません)。ビューが「CustomView」でない場合、これらのデザイン可能なプロパティは属性インスペクターに表示されませんよね? しかし、Interface Builder がこれらの属性をビューに適用しようとすると、ビューのクラスが "UIView" であるという考えに戻り、属性を適用できません。

何か助けはありますか?重要な詳細を省略した場合はお知らせください。ただし、価値があるのは、このチュートリアルに正確に従ったことです(ObjC と Swift 以外)。また、このチュートリアルを別のマシンで正確に実行したところ、魅力的に機能したことも注目に値します (昨夜この投稿を行うつもりでしたが、当時使用していたコンピューターにはこの問題はありませんでした)。


コメントに基づいて、.mファイルが含まれていない可能性があり、それが問題の原因である可能性があることが示唆されています。このシナリオが当てはまるとしたら、きっと私は道を踏み外しただろうと思いましたが、とにかくチェックしました.

ここに画像の説明を入力

私が最初にこれを試み始めたとき、IB_DESIGNABLEクラスは別のUIKitフレームワークの一部でなければならないことを理解していました。この最初のスクリーンショットから、1 つのクラスを持つ「CustomViews」フレームワークをセットアップしたことがわかりますCustomView。また、別のフレームワークではないことを除いて、OtherViewと同じであるも作成したことがわかります。CustomViewただし、両方のクラス間でストーリーボードに同じ問題が残ります。

ここに、フレームワークCustomView.mでビルドするために含まれていることを示すスクリーンショットがあります。CustomViews

ここに画像の説明を入力

一方、次のスクリーンショットはいくつかのことを示しています。

  • CustomViews.frameworkメインプロジェクトに適切に含まれています。
  • OtherView.mもコンパイルソースとして含まれているので、 に問題があっても動作するはずですがCustomViewOtherView同じエラーが発生します。
  • Main.storyboardLaunchScreen.xib赤く表示されています。理由はわかりませんし、なぜそうLaunchScreen.xibすべきなのかについての少しの手がかりもありません (私はこのファイルに触れていません) Main.storyboardIB_DESIGNABLEまたはそこで何もしていませんIBInspectable

ここに画像の説明を入力


私はこれを数回試して再試行しました。自宅のコンピューターでは常に動作します。この質問で説明されている問題を自宅で再現することはできません。仕事では、それは決してうまくいきません。この質問で説明されている問題は毎回発生します。

どちらのコンピュータも、今年新しく購入した Mac Mini です (新しいモデルではなく、2012 年後半のモデルです)。どちらのコンピューターも OS X Yosemite 10.10 を実行しています。どちらのコンピューターも Xcode バージョン 6.1 を実行しています。自宅でのビルドは (6A1052d) です。今朝、両方のコンピューターで同じビルドの Xcode が実行されていることを確認できました。

他の人は、RAMが不良である可能性があると私に提案しました。それは私にはとてつもないことのように思えます。プロジェクトを複数回再起動し、コンピューターを複数回再起動しました。約 6 か月前のコンピューターに不良 RAM があった場合、他の問題が発生し、この問題の一貫性が低下するように思われます。しかし、この正確な問題は、プロジェクト全体を最初から再起動したり、コンピューターで完全に再起動したりしても、解決しません。


IBInspectableこのプロジェクトを実際にコンパイルして実行すると、ストーリーボードに表示されるはずのプロパティを含むカスタム ビューが実際に表示されることに注意してください。ただし、これらはユーザー定義のランタイム属性として作成されるため、 IB_DESIGNABLEandディレクティブがなくてもこれが当てはまると思います。IBInspectable

0 投票する
2 に答える
1768 参照

ios - 静的ライブラリ、バンドル、および IB 設計可能

UIButton で IB Designable と IB Inspectable を使用しようとしていますが、いくつかのエラーがあるようです。

Issue Navigator で、バンドル ファイル:

ストーリーボード: IB Designables: 自動レイアウト ステータスの更新に失敗しました: パスからの designabled の読み込みに失敗しました (null)

それで、静的ライブラリまたはそのようなものでそれを使用するために行うべき構成があるのだろうか?

これは

ライブ レンダリングしたいカスタム ボタンがビュー コントローラー内にある

0 投票する
3 に答える
1279 参照

ios - UIButton の IBInspectable setTitle:forState が機能しない

Interface Builder でライブ レンダリングを使用して、UIButtons のローカライズ可能なクラスを実装しようとしています。これは私がこれまでに持っているコードです:

レイアウトは IB で正しく更新されていますが、テキストが表示されません。動作する UILabel で同じ実装を作成しました: https://github.com/AvdLee/ALLocalizableLabel

これを修正する方法についてのアイデアは大歓迎です!

0 投票する
1 に答える
100 参照

ios - IBInspectable プロパティによって調整された値をハード コードする必要がありますか?

プロパティを調整し、Xcode でライブ アップデートを取得するために使用する場合IBInspectable、選択した値をハード コードする必要がありますか?それとも、調整された値が最終バージョンでコンパイルされますか?

つまり、ビューの境界線を 10 に調整するために使用IBInspectableするとします。その境界線を 10 にハードコードする必要がありますか、それとも Interface Builder のボックスで調整されたこの値が、その境界線用にコンパイルされる値になりますか?

ちょっとの間、身の回りの IBInspectable は私を検査のためだけのものとして手に入れました...

0 投票する
1 に答える
1251 参照

ios - IBInspectable とプロトコル

「LiveRendering」と呼ばれる新しい Xcode 6 機能を使用しています。いくつかの検査可能なプロパティをさまざまなカスタム ビューで頻繁に使用する必要があるため、それらをプロトコルで宣言したいと考えています。

例えば ​​:

  • LiveRenderingTextAttributesProtocol (textColor、textSize の検査可能なプロパティを宣言します)
  • LiveRenderingBorderAttributesProtocol (borderStyle、borderColor、borderWidth の検査可能なプロパティを宣言します)

など...

その後、各カスタム ビューは必要なプロトコルを実装します。

しかし、InterfaceBuilder の「属性インスペクター」列に検査可能なプロパティが表示されません:/ これらのプロパティの値を「定義済みランタイム属性の使用」として定義すると、LiveRendering はうまく機能しますが、属性インスペクター列でそれらを表示したい.

この問題を解決するためのアイデアをください?

0 投票する
1 に答える
440 参照

ios - XIB で複数の UITableView を使用する

複数の とXIBがあるファイルとしてカスタム ウィジェットを作成しました。この XIB の所有者である対応する迅速なファイルには、これらの TableView へのアウトレットがあります。UITableViewUIButton

のビュー内のビューにこのウィジェットを追加しましたUIViewController。このコントローラーの対応する Swift ファイルで、各テーブルビューにdataSourceandを割り当てdelegate、ボタンにアクションを割り当てる必要があります。

私は長い間オンラインで探していました@IBInspectable varが、 s が進むべき道のようですが、 type UITableViewUITableViewDelegateまたはUITableViewDatasourceasの var を作成できないよう@IBInspectableです。

では、テーブルビューとボタンをどのように使用すればよいでしょうか? 誰かが正しいドキュメント、例、または説明に私を導くことができますか?