Swift Array扩展仅适用于某些类型的Array

时间:2015-06-12 03:23:10

标签: ios swift swift-extensions

如果我想制作一个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
        }
    }

}

0 个答案:

没有答案