Ich kann etwas wirklich dumm tun, aber ich kann nicht in der Lage sein, Interface Builder verwenden, um IBOutlet-Variablen mit benutzerdefinierten Ansichten zu verbinden, aber nur in Swift.Swift, Iboutlet und benutzerdefinierte Steuerelemente
Ich habe eine Klasse namens MyView erstellt, die von UIView erstreckt. In meinem Controller habe ich eine MyView-Variable (deklariert als @IBOutlet var newView: MyView). Ich gehe in IB und ziehe eine UIView auf das Fenster und gebe ihr eine Klasse von MyView.
Immer wenn ich in Objective C etwas Ähnliches gemacht habe, kann ich dann auf die View Controller-Schaltfläche oben im App-Fenster klicken, die Variable auswählen und sie zum Steuerelement ziehen, um beide miteinander zu verbinden. Wenn ich es in Swift versuche, weigert es sich zu erkennen, dass die Ansicht da ist.
Wenn ich die Klasse der Variablen in der Steuerung zu UIView ändern, funktioniert es gut. Aber nicht mit meiner benutzerdefinierten Ansicht.
Hat jemand anderes dieses Problem? Und ist es ein Feature oder nur meine Idiotie?
-Code für Controller
import UIKit
class ViewController: UIViewController {
@IBOutlet var newView:MyView
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
-Code für Ansicht
import UIKit
class MyView: UIView {
init(frame: CGRect) {
super.init(frame: frame)
// Initialization code
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect)
{
// Drawing code
}
*/
}
Ich habe dieses Problem auch, ich denke, das ist ein Fehler, und Sie sollten es melden. –