#ios #swift #xcode #cocoapods
#iOS #swift #xcode #cocoapods
Вопрос:
Я использую этот cocoapod для небольшого всплывающего окна, чтобы сбросить все сохраненные пользовательские ошибки. Поэтому я хочу, чтобы кнопки «Да» и «Нет» всплывающего окна были выровнены по горизонтали (по умолчанию по вертикали). Это мой код:
resetBtn.touchUpInside{ [self] in
let dialogAppearance = PopupDialogDefaultView.appearance()
let buttonAppearance = DefaultButton.appearance()
let title = "Do you really want to reset this game?"
let popup = PopupDialog(title: title)
let yesBtn = DefaultButton(title: "Yes", height: 60) {
self.click()
defaults.removePersistentDomain(forName: Bundle.main.bundleIdentifier!)
defaults.synchronize()
}
let noBtn = DefaultButton(title: "No", height: 60) {
self.click()
}
popup.addButton(yesBtn)
popup.addButton(noBtn)
dialogAppearance.messageFont = UIFont(name: "Nunito-Black", size: 18)!
dialogAppearance.messageTextAlignment = .natural
dialogAppearance.titleFont = UIFont(name: "Nunito-Black", size: 22)!
buttonAppearance.titleFont = UIFont(name: "Nunito-Black", size: 22)!
let vc = popup.viewController as! PopupDialogDefaultViewController //!!!
vc.buttonAlignment = .horizontal /// Cannot infer contextual base in reference to member 'horizontal', Value of type 'PopupDialogDefaultViewController' has no member 'buttonAlignment'
self.present(popup, animated: true, completion: nil)
}
Как вы можете видеть прямо здесь, создатель разместил кнопки горизонтально с помощью этого:
let vc = popup.viewController as! PopupDialogDefaultViewController
vc.buttonAlignment = .horizontal
Но когда я делаю именно это, компиляторы говорят: «Невозможно определить контекстную базу по ссылке на элемент’horizontal'», «Значение типа’PopupDialogDefaultViewController’ не имеет члена ‘buttonAlignment’«… как указано в моем коде.
Что мне делать?
Комментарии:
1. Что такое
PopupDialogDefaultViewController
? Есть ли у него свойство с именемbuttonAlignment
?2. @Larme Это конечный общедоступный класс Cocoapod, и у меня нет свойства с именем buttonAlignment . Но PopupDialog имеет
3. Но, как вы можете видеть в последней гиперссылке, в описании модуля сказано так же, как и я
4. Я понимаю. Я думаю:
vc.view.buttonAlignment
может сработать, может понадобиться (vc.view как! PopDialog).buttonliignment`5. Затем говорится, что «Приведение из ‘UIView?’ к несвязанному типу ‘PopupDialog’ всегда завершается неудачей». Поскольку представление не является всплывающим окном.
Ответ №1:
Решаемая:
Просто напишите напрямую
let popup = PopupDialog(title: title, message: message, buttonAlignment: .horizontal)
.