私のiOSプログラムでは、UIViewの任意のkey:valueプロパティを設定したいと思う。私はこれを行う方法を見つけることができませんでした。何か案は?任意のキーを設定したい:UIViewのvalueプロパティ
答えて
レイヤーは、(その答えupvote行く)https://stackoverflow.com/a/400251/264619によると、キー値に準拠しています。
UIView *myView = [[UIView alloc] init];
[myView.layer setValue: @"hello" forKey: @"world"];
一般的なアプローチは、辞書内のキーとして、受信機のメモリアドレスを使用することであり、それらのキーのための 、その後、組み込みditionariesを設定します。
#define KEY(o) [NSString stringWithFormat:@"%x", o]
- (id) init
{
if ((self = [super init])
{
// other stuff
NSMutableDictionary *globalKeys = [NSMutableDictionary new]; // don't forget to release in dealloc
}
return self;
}
// and where you want to set a key-value pair:
- (void) addKey:(NSString *)key value:(id)value forObject:(id)obj
{
NSString *objKey = KEY(obj);
NSDictionary *objDict = [globalKeys objectForKey:objKey];
if (!objDict)
{
[globalKeys setObject:[NSMutableDictionary dictionary] forKey:objKey];
}
[objDict setValue:value forKey:key];
}
それがお役に立てば幸いです。
ありがとうございます。ビュー自体にプロパティを追加する方法がない場合、私はこのようなことを考えていました。 – Roger
objc_setAssociatedObject
を使用してUIView
にNSMutableDictionary
を添付します。代わりに、ビューのレイヤー上の値:あなたがキーを設定できるよう
ありがとうございます。私はこれを試してみる。 iOS上の – Roger
では、Objective-Cランタイム関数を直接使用することはできません。 –
テストケースで正常に動作しました。 –
- 1. FirebaseListObservableの購読 - プロパティ$キーは、任意の[]
- 2. 任意のUIView変数にアニメーションを設定できますか?
- 3. 任意のidのようなキーを設定するには?
- 4. 任意のキーのLaravel `array_pluck '
- 5. 任意のキーの辞書
- 6. .Net '任意のフレームワーク'の設定
- 7. swift UIViewサブクラスと、渡された値からの任意のサブビュー
- 8. 設定と私はこのような委任に渡されたプロパティを設定し、取得したいデリゲート
- 9. JavaScriptの設定タイミング。ウィジェットのための任意のアイデア?
- 10. 任意のキーを使用したJSONスキーマ検証
- 11. ジャクソン:任意の非文字列キーを使用した(デ)シリアライズマップ
- 12. textBox.textを任意のキーに変更
- 13. BufferedReaderで任意のキーを押す
- 14. 任意のJSONキーを持つJackson ObjectMapper
- 15. 新しいオブジェクトの動的キーを{[key]: "value"}のように設定する
- 16. 任意のUIの色をRGB形式で設定します
- 17. は、VBAは、二軸に任意の負のシリーズを設定し
- 18. SpringブートがJerseyのResourceConfigクラスの@Valueプロパティを設定していません
- 19. ココアスウィフトの任意のプロパティへのバインド
- 20. Choiseboxのvalueプロパティをdb外のオブジェクトから設定する
- 21. AESON-Haskellの任意のJSONキー
- 22. 任意のオブジェクトとプロパティの非CALayerアニメーションフレーム
- 23. AngularJSフォーム。 JSONの任意のプロパティ
- 24. チェックは、クラスの任意のプロパティには、
- 25. ActionScript 3の任意の動的プロパティ
- 26. 任意の方向のタブバーの上にUIViewを配置する
- 27. ループ:(:INT、値:任意のキー)プロトコルシーケンスに準拠していない -
- 28. 任意のJS関数でイベントハンドラを設定しますか?
- 29. 2つの方法はUIViewフレーム、任意の違いを変更しますか?
- 30. FCKEditorはポストバック時にValueプロパティを設定しません!
downvotingの彼の質問insetadにお答えください。 –