我使用以下代碼在我的視圖中查找某個子視圖。它工作正常,並且for
循環僅運行一次,因爲它只找到一個滿足where
子句的子視圖。Swift:在超視圖中查找視圖(不包含for循環)
for view in boardView.subviews where (view as? PlayingCardView)?.position.location == source.
&& (view as! PlayingCardView).position.column == source.column
&& (view as! PlayingCardView).position.row >= source.row
然而,似乎不可思議的是我運行一個循環這裏的時候,我實際上沒有做任何...循環-Y的東西(知道我的意思)?
有沒有其他的方式來像這樣「搜索」?像使用subviews.index(of:)
並使用where
條款或類似的條件的方式?
而且,我知道我可以做同樣的代碼是這樣的:
for view in boardView.subviews {
if let cardView = view as? PlayingCardView {
if cardView.position.location == source.location
&& (view as! PlayingCardView).position.column == source.column
&& (view as! PlayingCardView).position.row >= source.row {
// Do stuff
}
}
}
是通過下列方式之一計算更快?
謝謝,這聽起來相當完美! –
好吧,它看起來很完美...但是我得到一個錯誤: –
什麼是錯誤? – Callam