在Swift的UIKit文档中查找有关构造函数的信息

时间:2014-07-03 12:32:21

标签: ios uibutton swift

我目前正在尝试通过阅读Apple提供的书并参考Swift的UIKit API来学习Swift。

以下是我在网上找到的创建简单UIButton的代码......

var button = UIButton(frame: CGRectMake(0, 20, 100, 32))
button.setTitle("I'm a Button", forState: UIControlState.Normal)
button.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
view.addSubview(button)

一切都是自我解释的,但我不知道的事情是我们如何知道UIButton有一个构造函数(初始化程序),如果我没有看到它列在UIKit documentation的任何地方

这是我想要更好理解的代码行。

var button = UIButton(frame: CGRectMake(0, 20, 100, 32))

同样,我怎么知道UIButton有一个构造函数,如果我不认为它列在UIButton class的任何地方?

,它会将CGPoint作为参数

由于

3 个答案:

答案 0 :(得分:4)

那是因为UIButton从其超类继承了NSObject

的初始化程序

如果您检查UIView UIControl UIButton的超级类CGRect,它是{{1}}的直接超类,您将看到初始值设定项将{{1}}作为参数。

所以,基本上,如果你想看到给定类可用的所有初始化器,你必须在它的类层次结构中一直向上看。

答案 1 :(得分:2)

引用的代码行与

相同
UIButton * button = [[UIButton alloc] initWithFrame:CGRectMake(0.f, 20.f, 100.f, 32.f)];

在ObjC。

关键点在这里,–initWithFrame:UIView类的方法,UIButton是继承的,因此如果您需要了解更多有关特定方法的信息,那么可能需要检查父类或其父类等,以便找到它。

在推荐文档中,您可以找到关于继承的部分,如:

Inheritance panel

你可以查看父类'实际类的方法一个接一个。这几乎就是如何获得有关未列出的方法的更多信息。在实际的类参考

答案 2 :(得分:0)

我的一部分困惑是因为我希望找到一个构造函数而不是初始化器。

UIView将itializer列为以下内容......

init(frame:)
init(frame aRect: CGRect)

...在Objectice-C中有意义,因为它没有构造函数而是使用初始化器,但对于Swift,我期待更像构造函数,其中构造函数的命名方式与类相同,像...

UIButton (frame:)
CGRect UIButton (frame aRect: CGRect)

或者在这种情况下是一个UIView构造函数

UIView (frame:)
CGRect UIView (frame aRect: CGRect)

我不知道我在哪里阅读Swift支持的构造函数。我想我需要阅读更多关于Swift和编程的内容。

谢谢