我创建了一个自定义View
,因为不同的UIViewController
具有相同的外观。
当我将自定义View
添加到UIViewController
时,它似乎是一片空白。那没关系。重要的是如何为action
上的隐形Button
叠加层创建ImageView
?我似乎无法将隐身Sent Action
的{{1}}与Button
联系起来。
非常感谢任何帮助!
编辑: @Mannopson这就是我的做法
UIViewController
答案 0 :(得分:2)
无法连接插座的可能原因是:
答案 1 :(得分:2)
实质上,将行动分配给UIImageView
是一种不好的做法。您不必使用图像视图来处理点击(尽管技术上可以)。相反,使用简单的UIButton,删除其文本,边框及其颜色,并简单地设置图像。你会得到你想要的,没有不必要的叠加和这样的东西。它更容易,也更合适。
修改(摘自显示其他问题的评论):
将自定义视图添加到视图层次结构中。最典型的方式:
创建UIViewController
的子类,该类拥有所有出口。然后创建一个单独的故事板文件(或者您甚至可以使用当前的)。然后简单地以编程方式对其进行实例化,并通过这样做,访问view
属性。将view
作为子视图添加到当前显示的UIViewController
的视图层次结构中。
其他解决方案包括:
1)使用容器视图来管理嵌套的UIViewController
。
2)为您的自定义视图使用单独的XIB
文件,并以编程方式对其进行实例化。
答案 2 :(得分:2)
尝试这样的事情:
class BookDetailsView: UIView {
@IBOutlet var wholeView: UIView!
@IBOutlet var borderView: UIView!
@IBOutlet weak var imgBook: UIImageView!
@IBOutlet weak var txtTitle: UITextField!
@IBOutlet weak var txtAuthor: UITextField!
@IBOutlet weak var txtDesc: UITextField!
@IBOutlet weak var btnUploadPhoto: UIButton!
}
使用UIViewController
viewDidLoad
方法加载自定义视图:
let customView = Bundle.main.loadNibNamed("YourXIBName", owner: self, options: nil).first as! YourUIViewSubclass
// Customize appearence
customView.btnUploadPhoto.backgroundColor = UIColor.red
// Add an action for this button
customView.btnUploadPhoto.addTarget(self, action: #selector(yourFunctionForUIButton), forControlEvents: .touchUpInside)
self.view.addSubview(customView)
自定义功能:
func yourFunctionForUIButton() {
}
希望它有所帮助。这不是您主要问题的答案,也不仅仅是建议
答案 3 :(得分:1)
您应该为ImageView添加手势。
letter