2016-08-02 5 views

答えて

2
var arrayOfPoints : [CGPoint] = [.....]//your array of points 

for point in arrayOfPoints { 
    let y = point.y 
    //You now have just the y coordinate of each point in the array. 
} 

または.enumerate()の構文を使用している場合。

for (index, point) in arrayOfPoints.enumerate() { 
    let y = point.y 
    //You now have just the y coordinate of each point in the array. 

    print(point.y) //Prints y coordinate of each point. 
} 

スウィフトは、共通forループ操作が簡単になります。たとえば、 すべてのy座標の配列が必要な場合は、素早く素敵なライナーを使用できます。

let arrayOfYCoordinates : [CGFloat] = arrayOfPoints.map { $0.y } 

または、同じ関数に各yコーディネートを渡すために渡します。ここで

arrayOfPoints.map { myFunction($0.y) } 
+0

を行きます。私はこのコードを使ってY座標にアクセスしようとしました: (index、point)for arrayOfPoints.enumerate(){ } しかし、それは私のためには機能しません。なにが問題ですか? – andy

+0

'.enumerate()'構文を使用して、 'index'は' CGPoint'の配列内の 'CGPoints'であり、' point'は配列中の 'CGPoint'のインスタンスです。そこで、あなたは 'point.y'を書くことによってy座標にアクセスします。 – NSGangster

+0

@Swift答えを' .enumerate'構文で更新します。 – NSGangster

0

point.yで簡単なforeachループが動作しないのはなぜですか?

1

[OK]を

let arrayOfPoints : [CGPoint] = [CGPoint(x: 1, y: 2), CGPoint(x: 3, y: 4)] 

let yCoordinates = arrayOfPoints.map { $0.y } 

for y in yCoordinates { 
    print("y = \(y)") //Or whatever you want to do with the y coordinates 
} 
関連する問題