Ich benutze einen PopoverController und möchte den Hintergrundschatten loswerden. Apple sagt, die UIPopoverBackgroundView SubClass und Rück false
für override class var wantsDefaultContentAppearance: Bool { get }
Swift iOS -Wie verbinden Methode in UIPopoverBackgroundView-Klasse mit einem PopoverController in einer anderen Klasse?
ich es subclassed und stellen Sie den Bool false
aber der Schatten noch zeigt. Wie verbinde ich diese Unterklasse mit dem PopoverController, den ich in meinem ActionScript in meiner LogoutClass verwende?
UIPopoverBackgroundView Unterklasse:
class PopoverBackgroundView: UIPopoverBackgroundView {
override class var wantsDefaultContentAppearance: Bool {
get {
return false
}
}
}
LogoutController:
class LogoutController:UIViewController{
fileprivate func logOff(){
let actionSheet = UIAlertController(title: nil, message: "Logging out?", preferredStyle: .actionSheet)
let logout = UIAlertAction(title: "Log Out", style: .default){
(action) in
//bla bla bla
}
actionSheet.addAction(logout)
if let popoverController = actionSheet.popoverPresentationController{
popoverController.sourceView = view
guard let window = UIApplication.shared.keyWindow else { return }
window.backgroundColor = .clear
popoverController.sourceRect = CGRect(x:window.bounds.midX, y:window.bounds.midY, width:0, height:0)
popoverController.permittedArrowDirections = []
}
present(actionSheet, animated: true, completion: nil)
}
}
danke für die Hilfe. Ich habe es versucht, aber der Schatten ist immer noch da, also bin ich mir nicht sicher, ob es funktioniert oder nicht. –
es funktioniert immer noch nicht, aber Ihre Antwort ist richtig. Mit der Implementierung der Hintergrundklasse stimmt etwas nicht. Trotzdem danke –