UIView
のコピーを作成したいが、NSKeyedArchiver
を使いたいのですが、多くのビューのコピーを頻繁に作成していて、NSKeyedArchiver
スロー。uiviewのコピーを作成する方法(元のuiviewへのポインタではない)
約copy
またはinitWithZone:
と聞いたことがありますが、グーグルではUIView
には適していません。私は元のビューを指しているコピーは、それに加えられた変更もコピーされたUIView
を変更するので、望んでいません。
UIView
のコピーを作成したいが、NSKeyedArchiver
を使いたいのですが、多くのビューのコピーを頻繁に作成していて、NSKeyedArchiver
スロー。uiviewのコピーを作成する方法(元のuiviewへのポインタではない)
約copy
またはinitWithZone:
と聞いたことがありますが、グーグルではUIView
には適していません。私は元のビューを指しているコピーは、それに加えられた変更もコピーされたUIView
を変更するので、望んでいません。
ビューのコピーに役立つUIViewカテゴリを作成します。このような何か:
- (id) copyView {
UIView *a = [[UIView alloc]init];
a.frame = self.frame;
//set all other properties of the UIView
return a; //return [a autorelease] if not using ARC
}
これは、目的のビューのすべての属性をコピーしません – Saad
あなたが使用してビューをコピーすることができます。
TheView *copyOfView = (TheView *) [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:origionalTheView]];
ビューをコピーすることはできません。 「コピー」が必要な場合は、NSCoding(キー付きアーカイバのもの)を使用してディープコピーを作成するか、ビューがそれ自身を設定し更新するために使用するコピー可能なデータオブジェクトを実装する必要があります。表示し、別のものに追加します。しかし、単にビューを "コピー"する方法はありません。 –
待って、オリジナルを指し示すコピーが2つの異なる場所で同じビューを望んでいると言ったら、 –
私はタッチでuiviewの回転、スケーリング、動きを実装しているので、特定の瞬間のuiviewの状態を別のuiviewに保存したかっただけです。 あなたは私に、uiviewのプロパティをコピーすることができない場合に、他のものにプロパティをコピーする方法を教えてもらうことができます..thnx –