2012-07-02 12 views
5

UIViewのコピーを作成したいが、NSKeyedArchiverを使いたいのですが、多くのビューのコピーを頻繁に作成していて、NSKeyedArchiverスロー。uiviewのコピーを作成する方法(元のuiviewへのポインタではない)

copyまたはinitWithZone:と聞いたことがありますが、グーグルではUIViewには適していません。私は元のビューを指しているコピーは、それに加えられた変更もコピーされたUIViewを変更するので、望んでいません。

+0

ビューをコピーすることはできません。 「コピー」が必要な場合は、NSCoding(キー付きアーカイバのもの)を使用してディープコピーを作成するか、ビューがそれ自身を設定し更新するために使用するコピー可能なデータオブジェクトを実装する必要があります。表示し、別のものに追加します。しかし、単にビューを "コピー"する方法はありません。 –

+0

待って、オリジナルを指し示すコピーが2つの異なる場所で同じビューを望んでいると言ったら、 –

+0

私はタッチでuiviewの回転、スケーリング、動きを実装しているので、特定の瞬間のuiviewの状態を別のuiviewに保存したかっただけです。 あなたは私に、uiviewのプロパティをコピーすることができない場合に、他のものにプロパティをコピーする方法を教えてもらうことができます..thnx –

答えて

-4

ビューのコピーに役立つ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 
} 
+0

これは、目的のビューのすべての属性をコピーしません – Saad

0

あなたが使用してビューをコピーすることができます。

TheView *copyOfView = (TheView *) [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:origionalTheView]]; 
関連する問題