在我的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
中执行此操作)?
我认为你不应该这样做。您应该在自定义 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!
- 创建 UIView 的 ImageManager 子类。
- 在视图控制器下创建一个新视图,并将其类名更改为 ImageManager。
- 将两个 UIImageViews 拖到您的 ImageManager 中。
- 查看ImageManager View的插座,并将它们连接到新创建的视图。
- 在您的视图中,只需将图像管理器添加为子视图即可。