ios – 原始viewcontroller中containerview中元素的IBOutlet

前端之家收集整理的这篇文章主要介绍了ios – 原始viewcontroller中containerview中元素的IBOutlet前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的主视图中,我有两个容器,在视图控制器中有一个IBOutlet.

在两个容器中,我都有一个图像和一个标签,如下图所示.

enter image description here

我想要一个IBOutlet来改变图像和标签但是当我将它拖到原始视图控制器时它不允许它.

所以在viewcontroller.swift中,正如我所说,我可以通过单击和拖动来访问每个容器.像这样

@IBOutlet weak var containerview1: UIView!
@IBOutlet weak var containerview2: UIView!

但我试图访问容器中的图像视图和标签,如下所示:

@IBOutlet weak var containerview1: UIView!
@IBOutlet weak var containerview2: UIView!

@IBOutlet weak containerview1_ImageView: UIImageView!
@IBOutlet weak containerview2_ImageView!: UIImageView!

我知道这可能不是正确的方法.我需要能够通过viewcontroller.swift以编程方式更改两个containerviews中的图像和标签.

谢谢你的帮助

解决方法

为容器创建两个单独的类

import UIKit

class ContainerView1: UIView {

@IBOutlet var containerView1Label: UILabel!
@IBOutlet var containerView1ImageView: UIImageView!

}


import UIKit

class ContainerView2: UIView {

@IBOutlet var containerView2Label: UILabel!
@IBOutlet var containerView2ImageView: UIImageView!

}

在主视图中,控制台故事板定义了那些类

enter image description here

现在通过从故事板拖动来设置标签和imageview插座

enter image description here

现在在主视图控制器中拖动容器出口并使用

import UIKit

class ViewController: UIViewController {

    @IBOutlet var containerView1: ContainerView1!
    @IBOutlet var containerView2: ContainerView2!

    override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view,typically from a nib.


    // use like this both container elements

    containerView1.containerView1Label.text = "Container view 1 lable"
    //containerView1.containerView1ImageView.image = yourImage file
    }

    override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
    }

}

猜你在找的Xcode相关文章