繁体   English   中英

创建IBOutlet / IBAction并在自定义类中将其与UI连接

[英]create IBOutlet / IBAction & connect it with UI in a custom class

在我的ViewController ,我有两个UIImageView具有与UI的IBOutlet连接:

class ViewController: UIViewController {
    @IBOutlet weak var img1: UIImageView!
    @IBOutlet weak var img2: UIImageView!
    ...

现在,我想重构我的项目以拥有一个专门的类ImageManager处理图像。 因此, ViewController变为:

class ViewController: UIViewController {
   var imgMgr: ImageManager!

   override func viewDidLoad() {
        super.viewDidLoad()
        imgMgr = ImageManager()
   }
}

我希望ImageManager类以与ViewController相同的方式声明两个UIMageViews ,并与UI建立IBOutlet连接,但是看起来它不能以这种方式工作:

class ImageManager : NSObject {
    @IBOutlet weak var img1: UIImageView!
    @IBOutlet weak var img2: UIImageView!
    ...
}

有什么方法可以制作一个包含IBOutlet和IBAction的自定义类,该类连接到接口构建器UI组件(而不是在ViewController )?

  1. 使ImageManager成为UIView的子类。
  2. 在ViewController下创建一个新View,并将其类名称更改为ImageManager。
  3. 将两个UIImageViews拖到您的ImageManager。
  4. 查看ImageManager视图的出口,并将它们连接到新创建的视图。
  5. 在您的viewWillAppear中,只需将ImageManager添加为子视图。

我不认为你应该这样做。 您应该使用以下示例在自定义UIImage类中管理图像:

//inside the function awakFromNib
    self.layer.cornerRadius = 5.0 //will make all the images' corner radius of elements assigned to this custom class rounded
    self.clipsToBounds = true

然后,将图像出口照常拖到视图控制器,但不要将其类设置为“ UIImage”,而是将其设置为自定义类名称

@IBOutlet weak var someImg: CustomImgClass!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM