iOS-如何在视图控制器中引用视图?

ano*_*412 3 ios swift

从Android背景开始,每个UI元素(即“小部件”)都有一个ID。例如,userNameInputText可以是一个映射到特定文本字段的ID。iOS的模拟物是什么?

在Xcode中,我在情节提要中定义视图,然后ctrl将其+拖动到ViewController类中。这使我可以设置侦听器等。但是,似乎有些东西被遮盖了。侦听器如何参考特定视图?在android中,这很明显,因为您必须显式提供元素的ID。

Swe*_*per 6

我在情节提要板中定义视图,然后按Ctrl并将其拖动到我的ViewController类。这使我可以设置侦听器等

按住Control拖动,不仅可以添加侦听器。它还允许您添加插座连接。出口连接的代码如下所示:

@IBOutlet var myUIElement: UIXXXX!
Run Code Online (Sandbox Code Playgroud)

您可以使用标识符myUIElement来引用视图。这是有关如何添加插座连接的示例:

  • 按住Control并拖动一个视图,UIImageView对View Controller类说,这将出现:

在此处输入图片说明

在那看到“插座”一词吗?这意味着您正在添加插座连接。然后叫插座myImage。因此,在代码中,它将如下所示:

@IBOutlet weak var myImage: UIImageView!
Run Code Online (Sandbox Code Playgroud)

现在,您可以在情节提要中引用图像视图了!就像Java中一样,但是更短。让我用Java编写此代码,以便获得更清晰的画面:

private ImageView myImage;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setLayout(R.layout.someLayout);
    myImage = (ImageView)findViewById(R.id.someId);
}
Run Code Online (Sandbox Code Playgroud)

如果要获取原型表视图单元格,则还有另一种方法:

  • 在情节提要中,选择单元格,然后向该单元格添加一个重用标识符,例如my cell
  • 在表视图控制器中,调用此方法:

    let cell = tableView.dequeueReusableCellWithIdentifier("my cell")
    
    Run Code Online (Sandbox Code Playgroud)

现在您可以得到细胞了!