gpt4 book ai didi

iphone - iOS 绘制 GridView 以拖放捕捉到该网格的对象

转载 作者:可可西里 更新时间:2023-11-01 05:55:23 25 4
gpt4 key购买 nike

我正在从事一个需要将自定义 View 分割成正方形的项目。您需要能够将另一个 View 拖到它上面,当您放下该对象时,它会捕捉到网格方 block 。我还需要能够遍历网格中的每个方 block 并确定对象是否在该特定网格方 block 内。

我意识到这是一个有点普遍的问题,但我只是在寻找关于从哪里开始的任何方向,可能已经存在的类或框架以供引用。任何方向都将不胜感激。谢谢。

最佳答案

问题 #1:用户需要能够将另一个 View 拖到它上面,当您放下该对象时,它会捕捉到网格方 block 。

假设您正在拖动一个 UIView。在 UIView 的 touchesEnded 上,我将使用包含 UIView 的 x 和 y 坐标中心值的中心属性,并将其传递给一个函数,该函数测试它位于哪个网格正方形内。

这看起来像这样(假设 UIView 是 name draggingView):

for (CGRect gridSquare in gridArray) {
if (CGRectContainsPoint(gridRect, draggingView.center)) {
// Return the gridSquare that contains the object
}
}

如果您想知道 gridArray 是什么,它是构成游戏板的所有网格方 block 的数组。如果您需要帮助创建此内容,请告诉我。

问题 #2:用户需要能够遍历网格中的每个方 block 并确定对象是否在该特定网格方 block 内。

如果您能够按照上面的步骤进行操作,那么这就很容易了。在遍历网格方 block 时,您可以使用 gridSquare 原点值来查看是否有任何 draggingView subview 具有相同的原点。使用它,您可以返回特定正方形内的 UIView。见下文:

- (UIView *)findViewInSquare {
for (CGRect rect in gridArray) {
for (UIView *view in [self.view subViews]) {
if (CGPointEqualToPoint(view.frame.origin, rect.origin)) {
return view; // Returns the view in the grid square
}
}
}
return nil;
}

希望这一切都是有道理的,如果您需要任何说明,请告诉我。

关于iphone - iOS 绘制 GridView 以拖放捕捉到该网格的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18113950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com