当前位置: 首页 > 知识库问答 >
问题:

在Swift中,CGRectMake、CGPointMake、IGSizeMake、EGRectZero、CGPointZero不可用

方承弼
2023-03-14

将代码转换为最新的 swift 3.0 后,我会看到此错误。

也告诉我< code>CGSize = CGSizeMake(0,0)的解决方案

static var frameAtStartOfPan: CGRect = CGRectZero
static var startPointOfPan: CGPoint = CGPointZero

这也是不可获得的。

共有3个答案

钱和平
2023-03-14

在Swift 3中,您可以简单地使用< code>CGPoint.zero或< code>CGRect.zero来代替< code>CGRectZero或< code>CGPointZero。

但是,在 Swift 4 中,CG矩形零“CG点零”将起作用。

柯子琪
2023-03-14

快速修复 CG矩形制作 , CGPoint制作, CG大小制作在 Swift3

添加这些扩展:

extension CGRect{
    init(_ x:CGFloat,_ y:CGFloat,_ width:CGFloat,_ height:CGFloat) {
        self.init(x:x,y:y,width:width,height:height)
    }

}
extension CGSize{
    init(_ width:CGFloat,_ height:CGFloat) {
        self.init(width:width,height:height)
    }
}
extension CGPoint{
    init(_ x:CGFloat,_ y:CGFloat) {
        self.init(x:x,y:y)
    }
}

然后转到“在工作区中查找和替换”找到CGRectMake、CGPointMake、CGSizeMake并用CGRect、CGPoint、CGSize替换它们

这些步骤可能会节省所有时间,因为Xcode现在无法让我们从Swift 2快速转换为Swift 3

乜坚成
2023-03-14

< code>CGRect可以使用下面给出的< code>CGPoint或< code>CGSize的实例简单地创建。

let rect = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: 100, height: 100))  

// Or

let rect = CGRect(origin: .zero, size: CGSize(width: 100, height: 100))

或者,如果我们想在CGFloatDoubleInt中指定每个值,则可以使用此方法。

let rect = CGRect(x: 0, y: 0, width: 100, height: 100) // CGFloat, Double, Int

断续器可以像这样创建。

 let point = CGPoint(x: 0,y :0) // CGFloat, Double, Int

CGSize可以这样创建。

let size = CGSize(width: 100, height: 100) // CGFloat, Double, Int

此外,大小和点以0作为值,可以像这样完成。

let size = CGSize.zero // width = 0, height = 0
let point = CGPoint.zero // x = 0, y = 0, equal to CGPointZero
let rect = CGRect.zero // equal to CGRectZero

CGRectZero

 类似资料:
  • 问题内容: 我有一个尝试转换为Swift 3的Gradient类,但是出现以下错误 迅速无法使用“ CGPointMake” 对于 任何人都可以帮我解决我可以代替的东西 这是全班; 问题答案: 您可以迅速创建一个快捷方式。因此,将您更改为

  • 问题内容: 在阅读The Swift Programming Language时 ,我遇到了以下片段: 您可以使用 if 和 let 一起使用可能缺少的值。这些值表示为 optionals 。可选值包含一个值或包含nil来指示该值丢失。在值的类型后写一个问号(?),以将该值标记为可选。 片段1很清楚,但是片段2发生了什么?有人可以分解并解释吗?它只是使用块的替代方法吗?在这种情况下的确切作用是什么

  • 问题内容: 我指的是Apple的Swift编程指南,以了解如何用Swift语言创建可变/不可变对象(数组,字典,集合,数据)。但是我不明白如何在Swift中创建一个不可变的集合。 我希望在Objective-C中看到以下Swift中的等效项 不变数组 可变数组 不变字典 可变字典 问题答案: 创建不可变数组 第一种方式: 第二种方式: 创建可变数组 将对象追加到数组 辞典 创建不可变字典 创建可变

  • 问题内容: 如何在Swift中创建不可变数组? 简要阅读文档会建议您可以做 但是可悲的是,这实际上产生了一个可变的,固定大小的数组。这种可变性通常会产生令人困惑的别名和令人怀疑的别名,并且函数会改变其参数: 没有比C好多少了。 如果我想要不变性,最好的选择是将其包装成这样: 好像疯了。我在这里想念什么? 更新(2015-07-26): 这个问题可以追溯到Swift的早期。从那以后,对Swift进行

  • 问题内容: 当我迅速运行此代码时,我不知道为什么应用程序会在“ alertView.show()”部分显示一个断点而终止,请有人帮帮我。 问题答案: 从Xcode 6.0 UIAlertView类: 不推荐使用UIAlertView。改用UIAlertController和UIAlertControllerStyleAlert的preferredStyle。 在Swift(iOS 8和OS X 1

  • 问题内容: 我正在迅速这样做: 日志给了我这个: 然后,我尝试获取间隔以进行测试: 我得到: tI = 0.0 我究竟做错了什么?我似乎可以使timeIntervalSince1970调用正常工作。在Swift中是否有与此相关的已知问题,或者我在这里缺少什么? 问题答案: 最有可能是以 毫秒为单位 的时间间隔: Swift 3及更高版本: