在我的主视图中,我有两个容器,在视图控制器中有一个IBOutlet.
在两个容器中,我都有一个图像和一个标签,如下图所示.
我想要一个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! }
在主视图中,控制台故事板定义了那些类
现在通过从故事板拖动来设置标签和imageview插座
现在在主视图控制器中拖动容器出口并使用
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. }
}