gpt4 book ai didi

ios - CGRect 与 4 个矩形相交。如何找出它与哪个矩形最相交?

转载 作者:行者123 更新时间:2023-11-28 21:46:47 26 4
gpt4 key购买 nike

如果您需要更多详细信息:我有可拖动的 UICollectionViewCell。当单元格在拖动过程中与其他单元格重叠时,我想知道它主要重叠哪个单元格,以便用该单元格替换重叠的单元格。有什么有效的方法可以做到这一点吗?我发现 CGGeometry 没有任何帮助。谢谢。

最佳答案

您可以在循环中使用 CGRectUnion(),面积最小的将是重叠最大的。您可以编写一个处理(并返回一个)CGRect 的函数,但您可能需要再次遍历您的 View (单元格)以找到正确的 View ,所以我会保持它的 UIView 级别...例如

    //helpers

CGFloat CGRectGetArea(CGRect theRect){
return theRect.size.width * theRect.size.height;
}

-(UIView *)viewClosestToView:(UIView*)keyView fromViews:(NSArray*)comparisonViews{

UIView *result=nil;
CGFloat smallestArea=0.0;

for (UIView *view in comparisonViews){

CGFloat area = CGRectGetArea( CGRectUnion(view.frame, keyView.frame) );

if ((area < smallestArea)|| ((NSInteger)smallestArea==0) ){
smallestArea=area;
result=view;
}

}
return result;
}

关于ios - CGRect 与 4 个矩形相交。如何找出它与哪个矩形最相交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866752/

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