Ich möchte UIVisualEffectView
implementieren, um einen Effekt auf eine Ansicht zu blenden, um die Ansicht anzuzeigen, die dahinter liegt.So implementieren Sie UIVisualEffectView in UITableView mit adaptiven Segmenten
Diese Ansicht, die ihr Hintergrund verwischt haben sollte, ist ein UITableViewController
, die in einem UINavigationController
eingebettet ist, und es wird entweder in einem popover auf dem iPad präsentiert werden, oder es wird Vollbild-modal auf iPhone, dank iOS 8 adaptive segues vorgestellt (Präsentieren als Popover). Wenn dieser Ansichts-Controller in einem Popover ist, möchte ich, dass der Hintergrund verwischt, was sich unter dem Popover befindet, und wenn der Vollbildmodus angezeigt wird, möchte ich, dass der Hintergrund den vorherigen Ansichtscontroller verwischt.
Ich habe versucht, dies zu implementieren und waren nicht erfolgreich. Ich kann nicht einmal den Unschärfe-Effekt für das Popover funktionieren lassen. Ich dachte, sollte dieser Code den Trick:
//In viewDidLoad on the UITableViewController subclass:
let effectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
effectView.frame = tableView.frame
tableView.addSubview(effectView)
Ich habe auch versucht die Subview der tableView.backgroundView
Zugabe habe ich versucht, die backgroundView
meiner effectView
Einstellung habe ich versucht, Automatische Anordnung Einschränkungen anstelle der Einstellung des Rahmens verwendet wird, aber nichts hat funktioniert . Kannst du mir helfen, das gewünschte Verhalten zu erreichen?
Ein Beispiel dafür, was ich versuche, zu erhalten:
iPad popover:
iPhone modal Präsentation:
Ich sehe nicht den Präsentationsstil "Over Full Screen". Ist das nur iOS 8? – livingtech
@livingtech Ja. Adaptive Segmente (und andere in der Lösung verwendete APIs) sind nur für iOS 8+ verfügbar. – Joey
Ich habe auch bemerkt, dass iPad 2 und iPad Retina Simulatoren keine Unschärfen zeigen, es macht die Ansicht nur halbtransparent. Alle anderen Simulatoren funktionieren gut, einschließlich iPhone 4s. Lassen Sie sich davon nicht beeindrucken, denn ich dachte zuerst, dass UIVisualEffectView nicht funktioniert – Dmitry