問題タブ [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.
ios - iOS - IBInspectable を機能させるために必要な Objective-C メソッドは何ですか?
UIView
これは、インターフェイスビルダーでシャドウを制御できるカスタムクラス用に作成した次のコードです。
を使用するawakeFromNib
と、iPhone 5 シミュレーターでは影が機能しますが、iPhone6 エミュレーターでは半分しか機能しません。すべてで機能するようですが、とdrawRect
を使用する Swift の例を見てきました。これを常に正しく行うために必要な方法は何ですか?init(frame: CGRect)
init?(coder aDecoder: NSCoder)
注:IB_DESIGNABLE
インターフェイス ビルダーでは影がレンダリングされないため、この場合は使用しません。
ios - フォントと方向のカスタム IBInspectable を記述する方法は?
Swiftでテキストフィールドの拡張子を書くことに決め、UITextFieldにいくつかの機能を追加します。たとえば、ラベル、タイトル、タイトルの方向、カスタムカラー、タイトルのカスタムフォントなどを追加します。
RTL 言語の方向番号 (電話番号など) は左に、タイトルの方向は右にあるため、方向のテキスト フィールドとラベルを別々にする必要がありました。
ラベルテキストフィールド(タイトル)に方向とカスタムフォントを追加したいのですが、IBInspectableはNSTextDirection、UIFontのこの機能をサポートしておらず、いくつかの考えをサポートしているため、IBInspectableに関する私の問題:
- 整数
- CGFloat
- ダブル
- 弦
- ブール
- CGポイント
- CGサイズ
- CGRect
- UIColor
- UIImage
そして、IBInspectable の方向にブール値を使用したくありません。
このテーマについて何か考えはありますか?
助けてくれてありがとう。英語が下手で申し訳ありません。
swift3 - IBInspectable 属性が Xcode 8 の「ユーザー定義ランタイム属性」領域に表示されませんか?
XCode 8.1 を実行していますが、Xcode に表示される IBInspectable 属性を取得できません。この分野での XCode 8.1 (swift 3) の既知の問題はありますか? または、私がここでやろうとしていることに関する問題はありますか?
手順:
- シンプルな iOS アプリを作成する
- 次の「customControl」クラスを作成しました
- アプリのストーリーボードで、UIView をストーリーボードにドラッグし、「customControl」のクラス タイプを変更します。
- XCode が「ビューの更新」段階を通過していることに気付きましたが、「ユーザー定義のランタイム属性」領域に項目が追加されませんか?
コード:
xcode8 - Cocoa Touch Framework で IBInspectable が動作しませんか? (コード添付)
「titleText」IBInspectable 属性が機能していないようです。IBInspectable 変数「titleText」を作成する UILabel を持つ単純なフレームワーク ビューがあります。検査可能な「レイヤー」変数は期待どおりに機能しますが、このフレームワークを使用してメインビューを更新することになっているカスタム「titleText」は機能しません。
問題は次のとおりです。
Interface Builder が titleLabel を更新していませんか? (つまり、設計時)つまり、「レイヤー」アイテムで機能しているように、これが機能することを期待しています。
実行時に、titleLabel の値も IB で設定した値を取得していません。実行すると次の出力が得られることに注意してください。つまり、これを生成するコードは、「self.titleLabel」が実際には nil であることがわかりますか??
コードの概要
(b) gcCustomerView.swift
(c) メイン絵コンテのスナップショット
ios - アニメーション化されたパスコンテンツを備えたCALayer、検査可能/設計可能にする
をサブクラス化し、そのレイヤーにサブレイヤーをUIView
追加し、オーバーライドして形状レイヤーのプロパティを更新することにより、カスタムの循環進行状況ビューを作成しました。CAShapeLayer
drawRect()
path
ビュー@IBDesignable
とprogress
プロパティを作成する@IBInspectable
ことで、Interface Builder でその値を編集し、更新されたベジエ パスをリアルタイムで確認できました。必須ではありませんが、本当にクールです!
次に、パスをアニメーション化することにしました。コードで新しい値を設定するたびに、進行状況を示す円弧が長さ 0 から、達成された円のパーセンテージまで "成長" する必要があります (Apple Watch のアクティビティ アプリの円弧を考えてみてください)。 )。
これを実現するために、アニメーションのキーとして観測される ( ) プロパティを持つカスタム サブクラスによってサブレイヤーを交換しました ( 、などを実装しCAShapeLayer
ましCALayer
た) 。@dynamic
@NSManaged
needsDisplayForKey()
actionForKey()
drawInContext()
私のViewコード(関連部分)は次のようになります:
そしてレイヤーコード:
アニメーションは機能しますが、パスを Interface Builder に表示できません。
私は自分のビューを次のprepareForInterfaceBuilder()
ように実装しようとしました:
...そして、ラベル テキストの変更は Interface Builder に反映されますが、パスはレンダリングされません。
何か不足していますか?