如果我想制作一个Array
扩展程序,但只对Array
类型[UIView]
进行扩展,那么在Swift中是否可以这样做?
目前,我只是做一个正常的extension Array
,前提是Array
只保留UIView
类型的元素,但似乎必须有更好的方法。
以下是我目前的做法:
extension Array {
mutating func sortByVerticalPositionTopToBottomIn(rootView: UIView) {
precondition(arrayConsistsOfOnlyType(UIView), "This method should only be used for arrays of UIViews.")
self.sort {
let firstObj = $0 as! UIView
let secondObj = $1 as! UIView
return firstObj.convertPoint(CGPointZero, toView: rootView).y < secondObj.convertPoint(CGPointZero, toView: rootView).y
}
}
}