ios - NSPredicate 在 CGPoints 的 NSArray 上

标签 ios nspredicate cgrect cgpoint

我有一个 CGPoints 的 NSArray。

我实际上想要获得包含该数组中所有 CGPoint 的最小 CGRect。 是否已经有任何 iOS 功能可以执行此操作?

否则,我将不得不手动获取 minX、maxX、minY、maxY,并以这种方式构建我的 CGRect:

CGrectMake(minX, minY, maxX-minX, maxY-minY);

为此,我需要使用 NSPredicate 过滤 NSArray。

(我知道,我可以手动过滤数组,但是拜托!...)

最佳答案

没有公共(public) API 可以满足您的要求。您必须自己编写。

它无论如何都不适合NSPredicate。谓词用于过滤值,而不是用于构造新值。

CGRect boundsOfPointArray(NSArray *array) {
    CGRect bounds = CGRectNull;
    for (NSValue *wrapper in array) {
        CGRect r = (CGRect){ wrapper.CGPointValue, CGSizeZero };
        bounds = CGRectUnion(bounds, r);
    }
}

关于ios - NSPredicate 在 CGPoints 的 NSArray 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13956890/

相关文章:

javascript - 从 iOS 模拟器中的 Ionic (Cordova) 应用程序登录 Firebase Facebook

iphone - NSPredicate 多字段搜索

ios - 排序核心数据获取(swift 4)

ios - 只为部分 UIView 设置背景颜色

swift - 编码 SpriteKit 游戏,我收到 "Instance member ' minX' 不能在类型 'CGRect"上使用

ios - 如何从 HealthKit 获取每日正念时间?

ios - UITextView 使键盘永久化?

ios - 如何提供高级 API 调用安全性 - iOS

objective-c - 按属性 IN 数组过滤核心数据结果

ios - frame.size.width 和 frame.width 的区别