UIView / UICoordinateSpace在swift 3中转换rect / point冲突

时间:2016-09-15 11:25:55

标签: ios uiview uikit swift3

所以我最近不得不将我的项目转换为Swift 3,虽然有点痛苦,但它大部分都没问题。但是,我现在已经发现了一些我无法解决的最终错误!

我正在使用

self.convert(point, to: v)

转换视图之间的点,但Xcode不断给我构建错误,说明

  

'转换(_:向:)'仅适用于iOS 8.0或更高版本

这似乎是由于方法定义

public protocol UICoordinateSpace : NSObjectProtocol {


    @available(iOS 8.0, *)
    public func convert(_ point: CGPoint, to coordinateSpace: UICoordinateSpace) -> CGPoint

    ...

}

与正常的UIView碰撞

extension UIView {

    ...

    open func convert(_ point: CGPoint, to view: UIView?) -> CGPoint

    ...

}

我不能为我的生活找到解决方法!有没有人遇到这个或有任何想法如何解决它?!

2 个答案:

答案 0 :(得分:3)

您可以手动将iOS部署目标设置为7.0,Xcode将应用程序构建为目标7.0。 (我不知道以这种方式构建的应用程序可以批准用于App Store。)

因此,您可以使用Xcode 8测试该行为。

你可以用这个来沉默Xcode:

 self.convert(point, to: v as UIView?)

使用Swift 3的新重命名规则,一些导入的方法可能在Swift中具有相同的签名,我担心其中一些可能没有这种解决方法,并且可能无法通过更改目标版本来解决。

答案 1 :(得分:0)

好的,如果其他人有这个问题,那么结果是因为不再支持iOS 8之前的版本。如果您将项目更新为推荐设置,它会将您的最低iOS版本设置为8,一切都会很高兴:)