У меня есть несколько вопросов относительно перьев.
- Как динамически или программно загрузить перо на мой UIView в View Controller?
Я знаю, что вы можете просто добавить пользовательский класс пера, введя класс пера swift здесь:
Пользовательский класс
Я ищу, как изменить этот атрибут, например, при нажатии кнопки я хочу удалить или добавить его. Я попытался создать экземпляр файла swift, но не могу его проверить. Я также попытался изменить владельца файла .xib, но ему нужен только UIView, поэтому я не могу сделать свой View Controller его владельцем. Я пытался использовать
view.addSubiew(view: UIView)
Но я не знаю, как правильно создать экземпляр моего Nib-файла как UIView. Он продолжает просить NSCoder, и я понятия не имею, как создать его экземпляр. Было бы полезно, если бы кто-то мог сказать мне, как добавить и удалить пользовательский класс, который будет полезен.
Как передать данные с моего View Controller на перо?
Как запустить функции после полной загрузки пера? Вот код swift-класса .xib-файла.
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
if (self.subviews.count == 0) {
guard let view = loadViewFromNib() else {return}
view.frame = self.bounds
self.addSubview(view)
mainView = view
-> btn.layer.cornerRadius = 5
}
}
private func loadViewFromNib() -> UIView? {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "NibFile", bundle: bundle)
return nib.instantiate(withOwner: self, options: nil).first as? UIView
}
Это прекрасно загружает представление, но всякий раз, когда я пытаюсь запустить что-нибудь еще в блоках кода, например, где он отмечен (я хотел изменить угловой радиус кнопки после загрузки представления), я получаю ноль IBOutlet , Он просто говорит, что кнопка ноль. Где я могу добавить эту функцию?
Я тоже пытался это сделать:
override func awakeFromNib() {
btnLogin.layer.cornerRadius = 5
}
Все еще ноль, я запутался здесь, и исследования зашли в тупик или просто то, что мне не нужно. Любая помощь будет оценена. Спасибо!