配列の中の2つ以上のCGPointが同じ座標を持つかどうかを調べるSwift extension
を書いています。このコードを持つことで、配列内のすべての点をチェックできます。 しかし、いくつかの要素(すべてではない)だけをチェックする方法は? 2つ(またはそれ以上)の赤CGPointsは、彼らが緑色のものに変えなければなりません同じ座標を持っている場合は複数の配列の要素が同じ座標を持っているかどうかを調べる
はここ
import Foundation
extension Array where Element : Equatable {
func equalCoordinates() -> Bool {
if let firstElement = first {
return dropFirst().contains { $0 == firstElement }
}
return true
}
}
...拡張子です。
...とequalCoordinates()
方法使用のViewControllerのコード:(それはあなたのデータのサイズに応じて改善することができる)、効率に与える全く心配して
func drawn() {
let colorArray = array.map { $0.pointCoord()[0] }
for dot in array {
for cPoint in dot.pointCoord() {
if colorArray.equalCoordinates() {
let altColor = dot.alternativePointColour()
draw(cPoint, color: altColor)
} else {
let color = dot.pointColour()
draw(cPoint, color: color)
}
}
}
}
...........
Swift.print(colorArray.equalCoordinates())
...........
あなたは、いくつかのとはどういう意味ですか?それらの範囲?それらの指標のセット?一つずつ? – ColGraff
@ColGraff範囲内の2つ以上のCGPoint。可能であれば指標付き。 – andy
同じ要素のインデックスも返す必要がありますか? – ColGraff