行と列の順序でUIView、スーパービュー内のサブビューを見つけ、そのうちの1つをドラッグして、他のすべての1つがより大きな領域と交差するようにします。
交差するUIViewの間にドラッグ可能なUIViewを挿入するためにこれが必要です。
frame.origin値を計算する必要がありますか?はいの場合、例を挙げていただけますか?または、これはiOS SDKを使用して発生する可能性がありますか?
私はすでにCGRectIntersectsRectを知っていますが、これにより、交差する最初のUIViewが得られます。ほとんどの場合、UIViewを他のUIViewの間に配置する必要があります。運が悪かったpointInsideを使用した例がありました。
コード:
CGPoint centerInView = [viewDragged convertPoint:viewDragged.center toView:view]; // Checking with the views inside NSMutableArray in a for in statement
if ([view pointInside:centerInView withEvent:nil]) // This if statement almost never is true sometimes only
その他のアプローチ:
if (CGRectIntersectsRect(viewDragged.frame, view.frame)) // This always happens for the first UIView in subviews that intersects. Not so applicable for information
基本的には、ドラッグ可能なビューを最も近いUIViewの間に挿入するという考え方です。
画面に同じサイズのビューが1、2、3、4、5あると想像してください。最初にドラッグして、4、5の間に移動してから、2、3、4、1、5にします。あなたはその考えを理解します。これはすべて、新しいグリッドの助けを借りずに行う必要があります。私が必要とする唯一の部分は、1つのUIViewを4,5の間に置くことを計算することです。
フレーム、原点の計算を開始できましたが、これは効率的に聞こえません。何かご意見は?
ありがとうございました。