Być może robię coś naprawdę głupiego, ale wydaje mi się, że nie mogę używać Kreatora interfejsu do łączenia zmiennych IBOut do widoków niestandardowych, ale tylko w Swift.Swift, iboutlet i niestandardowe formanty
Stworzyłem klasę o nazwie MyView, która rozciąga się od UIView. W moim kontrolerze mam zmienną MyView (zadeklarowaną jako @IBOutlet var newView: MyView). Wchodzę do IB i przeciągam UIView na okno i nadaję mu klasę MyView.
Ilekroć zrobiłem podobny w Celu C, jestem wtedy w stanie kliknąć przycisk Kontroler widoku w górnej części okna aplikacji, wybierz zmienną i przeciągnij ją do kontrolki, aby połączyć te dwa elementy razem. Kiedy próbuję go w Swift, nie chce rozpoznać, że widok jest tam.
Jeśli zmienię klasę zmiennej w kontrolerze na UIView, działa poprawnie. Ale nie z moim niestandardowym widokiem.
Czy ktoś inny ma ten problem? I czy to jest funkcja, czy tylko mój idiotyzm?
Kodeks Kontrolera
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.
}
}
kod dla widoku
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
}
*/
}
Mam również ten problem, myślę, że to błąd i powinieneś go zgłosić. –