2017-02-19 11 views
0

3つのスクロールビューを持つことは可能ですか?中央がユーザが内部にあるオブジェクトを見つけるメインであると言うことができます。次に、ユーザーはアイテムをドラッグして、スクロールビューでは、オブジェクトは中央から削除され、右または左のいずれかがドロップされます。ユーザが左にドロップすると、システムは新しいオブジェクトを左のスクロールビューに追加しますが、ユーザがこのオブジェクトを削除して戻るメイン(中央)に戻ってドロップし、同じ古​​いインデックスに追加するとオブジェクトが2の場合はオブジェクトが追加され、インデックス2などにドロップされます。3つのScrollViews間のドラッグ/ドロップ[iOS]

この機能を使用するにはどうすればよいですか?

+0

solved.waitすることができ、私は私の中で私の考えを置きます回答。 –

+0

@ezatu∴あなたの親切なサポートを待っています – SimpleojbC

答えて

1

model1 ... model3としましょう。

@property (nonatomic, strong) NSMutableArray *mainArray; 
@property (nonatomic, strong) NSMutableArray *leftArray; 
@property (nonatomic, strong) NSMutableArray *rightArray; 

@property (nonatomic, strong) UIScrollView *mainView; 
@property (nonatomic, strong) UIScrollView *leftView; 
@property (nonatomic, strong) UIScrollView *rightView; 

あなたは、いくつかのプロパティを作るItemModel.hで、モデルクラスなどItemModel継承UIViewまたはNSObjectを作る必要があります(あなたが必要なものを財産とUIScrollViewがこのモデルが含まれているかについてのプロパティ)

まず、すべてのモデルを置きますメインビューのデータソースmainArrayself.viewのモデルを表示し、self.view bringSubviewToFront:と呼び出し、すべてのモデルにUIPanGestureRecognizerUIPanGestureRecognizerに対応するメソッドをドラッグできるようにします。

は、これが最も重要な部分である:

あなたはすべてのモデルは、3つのUIViewsで含まれてしたいので、あなたがself.view.frameと3つのUIViewフレーム関係の間でモデルの枠を計算する必要があります。実際、すべてのmodelViewはself.viewに含まれていますが、視覚的に表示されると、すべてのmodelViewがUIScrollViewsに含まれています。

第二に、あなたはすでにあなたがモデルをドラッグすると、あなたはあなたがドラッグポイントが含まれている任意のビューを得ることができるので、その後、メソッドCGRectContainsPoint(CGRect rect, CGPoint point)を呼び出して、ドラッグの場所についてCGPointを得ることができ、3 UIViewのフレームを持っています。

exexampleについて、あなたはmainViewからleftViewmodel1をドラッグし、あなたがしてmainArrayからmodel1を削除し、leftArraymodel1を入れ、CGRectContainsPoint(leftview.frame, point)からYESを得ることができ、その間、あなたは再レイアウトするための3つのUIViews必要です。ここ

enter image description here

enter image description here

enter image description here

はgifのための私の分け前のURLです:はい、これは一瞬のためにhttps://pan.baidu.com/s/1slFBva9

+0

モデルクラスが表示とドラッグに同意する必要があるので、モデルクラスに 'UIView'を継承させることをお勧めします。 –

+0

ありがとうございます。これは私の考えであり、問​​題は、オブジェクトが中間スクロールビューのaddSubviewである場合、中間スクロールビューの外にドラッグできないためです。そのために何ができるのでしょうか? – SimpleojbC

+0

申し訳ありませんが、私はこの問題を忘れて、私は私の答えを変えます、あなたはこの問題をどのように解決したかを見ることができます。 –

関連する問題