2011-01-13 4 views
5

Gibt es eine Möglichkeit, den UIPopOver transparent zu machen (Alpha = 0,75 oder so). Leider gibt es keine Alpha-Eigenschaft für UIPopOver. Ich muss ein Popover präsentieren, damit die Sicht darunter immer noch teilweise sichtbar ist. Irgendwelche IdeenTransparenter UIPopover

Antwort

4
popoverController.contentViewController.view.alpha = 0.5; 

alpha ist eine Eigenschaft eines UIView, so dass Sie den Blick auf die popover erhalten müssen und dann den Alpha zu dieser Ansicht.

+1

Während dies in der Theorie funktionieren sollte, wird es in Wirklichkeit nicht funktionieren. –

3

Es gibt derzeit keine Eigenschaft zum Festlegen des Alphas von UIPopoverController.

Wenn Sie das tun: popoverController.contentViewController.view.alpha = 0.5;

Die Innenansicht & Inhalt wird die UIPopoverController selbst transparant und nicht sein.

Related question

6

mit iOS5.0 starten, kann man einen benutzerdefinierten Hintergrund für die UIPopoverController bieten. Dieser Hintergrund muss von UIPopoverBackgroundView abgeleitet werden, der die normalen UIView Eigenschaften wie alpha bereitstellt. Beachten Sie, dass der Name ein wenig verwirrend ist - die UIPopoverBackgroundView liefert die Rahmen-, die Pfeil- sowie die Hintergrundgrafik.

Also, wenn Sie eine völlig semi-transparent UIPopoverController brauchen, alles, was Sie tun müssen, ist eine UIPopoverBackgroundView Klasse zu liefern, die unter 1.0 seine alpha auf etwas setzt. Sie müssen außerdem sicherstellen, dass die Ansicht Ihres contentViewControllers (vollständig) transparent ist.

Beispiel:

enter image description here


Einzelheiten see the popoverBackgroundViewClass property of UIPopoverController:

popoverBackgroundViewClass 

Die Klasse für die Darstellung des popover Hintergrund Inhalte zu verwenden.

@property (nonatomic, readwrite, retain) Class popoverBackgroundViewClass 

Discussion

Der Standardwert dieser Eigenschaft ist null, was, dass der Controller popover anzeigt sollten die Standard popover Aussehen verwenden. Wenn diese Eigenschaft auf einen anderen Wert als nil gesetzt wird, verwendet der Popover-Controller die angegebene Klasse, um den Hintergrundinhalt des Popovers zu zeichnen. Die von Ihnen angegebene Klasse muss eine Unterklasse von UIPopoverBackgroundView sein.

Verfügbarkeit Verfügbar in iOS 5.0 und höher. In deklariert UIPopoverController.h

+0

Havent hat es noch benutzt, aber es ist gut zu sehen, dass es endlich mehr gibt, um einen UIPopover anzupassen – Jasper

+3

Diese Unterstützung war in iOS 9.0 veraltet. Glauben Sie nicht, dass jemand weiß, ob es einen neueren Weg gibt? –

0

Sie können jetzt die backgroundColour -Eigenschaft des popoverPresentationController dazu verwenden, z.

  if let popoverPresentationController = myController.popoverPresentationController { 
       popoverPresentationController.backgroundColor = UIColor(white: 1, alpha: 0.5) 
      } 

(vergessen Sie nicht, die Ansicht in der popover und Kontrollen in dieser Ansicht transparent sowie entsprechend der Wirkung setzen Sie zu acheive versuchen)

this SO answer Details für mehr sehen.