問題タブ [ibdesignable]

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 投票する
3 に答える
3618 参照

ios - drawRect を使用しない Live Xcode の Interface Builder UIView サブクラス (IB_DESIGNABLE):

UIViewXcode でライブにレンダリングするサブクラスを作成することは可能ですか(ここでIB_DESIGNABLE説明されているように属性を追加することにより)、カスタムメソッドはありませんか?drawRect:

描画用に追加されたいくつかの を使用するカスタムUIViewサブクラスがあります (したがって、オーバーライドする必要はありません)。このクラスはアプリでは問題なく動作しますが、Xcode ではレンダリングされません。CAShapeLayerself.layerdrawRect:

コードを複製するdrawRect:と機能しますが、描画がレイヤー上で自動的に行われるようにしたいと考えています。

これはできますか?


私もやってみました

これはデバイスでは機能するようですが、Xcode の IB では機能しないようです。

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

ios - ポッドの依存関係から IB_DESIGNABLE を使用してカスタム コンポーネントをライブ レンダリングする

IB_DESIGNABLEポッドでの使用に問題があります。

としてマークしたカスタム ビューを作成し、IB_DESIGNABLEそれを使用するサンプル プロジェクトを作成しました。これまでのところ問題はありません。

この問題は、そのカスタム ビューをポッドの依存関係として追加するときに発生します。プロジェクトは正常にビルドおよび実行されますが、カスタム ビューを使用するストーリーボードを開くとエラーが発生します。ライブ レンダリング プロセスが開始され、Interface builder 内でライブ ビューを表示しようとしますが、次のエラーで失敗します。

ここに画像の説明を入力

私の意見では、Xcode 6 の最高の機能の 1 つであるライブ レンダリングが失われているため、これは残念です。

  • Cocoapods gem バージョン: 0.34.4
  • Xcode バージョン: 6.1 (6A1052d)

IB_DESIGNABLEを使用して持っている他のプロジェクトで試しましたpodspec

  1. https://github.com/Eddpt/EAColourfulProgressView (クラス: EAColourfulProgressView)
  2. https://github.com/hayashi311/HRButton (クラス: HRButton)
  3. https://github.com/Estimote/iOS-Indoor-SDK (クラス: ESTIndoorLocationView)

他の誰かがEstimote - Indoor Location Errorで同じ問題を抱えていましたが、説明されている解決策はライブ レンダリング機能を失うことを意味します。

IB_DESIGNABLECocoapods を介してコンポーネントを使用できた人はいますか?

エラー: 「パス (null) からデザイン可能要素を読み込めませんでした」

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

xcode - IBDesignable UIButton サブクラス

IBDesignable である単純な UIButton サブクラスを実装しようとしています。Interface Builder からコントロールの各状態の色を設定する機能が必要です。IBInspectable キーワードでこれが可能であることはわかっています。状態プロパティで KVO を使用すると、IB がクラッシュするという問題が発生します。deinit で IBDesignable デバッガーがクラッシュします。KVO と IBDesignable を一緒に使用する方法を知っている人はいますか?

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 投票する
3 に答える
13384 参照

swift - IBInspectable ドロップダウンとより良い組織の作成

@IBInspectable要するに、ストーリーボードにいるときにドロップダウン メニューのリストから選択できるプロパティを作成したいと思います。また、仕切りを作成して整理する方法がIBInspectablesあれば、これも可能かどうか知りたいです。私の例では、電話番号の正規表現文字列を作成して、ストーリーボードに移動したときに、正規表現文字列を入力する代わりに、ドロップダウン メニューで「電話番号」項目を選択できるようにしたいと考えています。

TextField現在、正規表現のようにさらに追加できるように、 a をサブクラス化しIBInspectablesました (写真で確認できます)。現状では、これが私のサブクラス化のために持っているものですUITextField:

正規表現ツールバー

0 投票する
5 に答える
10025 参照

ios - IBDesignable View レンダリングがタイムアウトする

最初の XCode 6/iOS 8 ベータ版のリリースから数か月間、アプリのオンとオフに取り組んできました。@IBDesignable追加された私のお気に入りの機能の 1 つは、 Swiftのタグで可能になったライブ レンダリングです。

ライブ レンダリングするものを 1 つも取得できませんでした。これはベータ リリースだったからだと思い、フル リリースが出るのを待ってもう一度試してみることにしました。それでも失敗しました。そのとき、コードにベータ リリースのアーティファクトが含まれている可能性があると考えたので、それを廃棄して、新たに始めました。それでもうまくいきません。確かに、エラーはもう少し説明的になりました。

これが私のコードです:

ストーリーボードでこれらのボタンのいずれかを使用してビルドしようとすると、次のエラーが表示されます。

私のコードでわかるように、もともとこのボタンを丸くしたかったのです。これがこの問題の原因かもしれないと考えましたが、Apple が非効率的な角丸長方形描画アルゴリズムを設計したことに驚きました。色を設定して長方形をそのまま描くことに切り替えました。まだ問題がありました。

私が間違っている小さなことが 1 つあります。ある種の無限ループになりそうですか?

継続する必要はありませんが、ライブ レンダリングが機能するようになると、開発がはるかに迅速かつ簡単になります。インターフェイスを表示して、実行しなくてもテストできるからです。

これを解決する方法について手がかりを持っている人には、事前に感謝します。