Is het mogelijk om een popover te presenteren zonder dat er pijlen naar ergens wijzen?
Antwoord 1, autoriteit 100%
Ja, het is mogelijk, doe gewoon:
[self.popoverController presentPopoverFromBarButtonItem:anItem
permittedArrowDirections:0
animated:YES];
De nul staat voor geen richting.
Antwoord 2, autoriteit 23%
Probeer deze voor iPhone en swift 2.0
Code om popover te starten
initiatePopover(){
let popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("XYZController") as! XYZController
let nav = UINavigationController(rootViewController: popoverContent)
nav.modalPresentationStyle = UIModalPresentationStyle.Popover
let popover = nav.popoverPresentationController
popoverContent.preferredContentSize = CGSizeMake(250 ,200)
popover!.delegate = self
popover!.sourceView = self.view
popover!.sourceRect = CGRectMake(200,200,0,0)
popover!.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
self.presentViewController(nav, animated: true, completion: nil)
}
En voeg dit toe aan uw ViewController
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.None
}
Antwoord 3, autoriteit 15%
Swift4:
popover.permittedArrowDirections = []
Antwoord 4, autoriteit 10%
Stel de permittedArrowDirections
in op 0.
permittedArrowDirections:0
Code –
[self.popoverController presentPopoverFromBarButtonItem:anItem
permittedArrowDirections:0
animated:YES];
Nul vertelt “NoDirection”.
Antwoord 5, autoriteit 8%
Swift3, deze code werkt voor mij
popover.permittedArrowDirections = .init(rawValue: 0)
Antwoord 6, autoriteit 5%
Voor Swift 2.0
en iOS9
is de oplossing:
popoverViewController?.permittedArrowDirections = UIPopoverArrowDirection()
Antwoord 7, autoriteit 5%
In Swift kunt u eenvoudig het volgende doen:
popoverPresentationController.permittedArrowDirections = []
Omdat je in een andere configuratie had kunnen gebruiken:
popoverPresentationController.permittedArrowDirections = [.up, .down]
Antwoord 8, autoriteit 4%
Probeer dit, het werkt voor mij.
[self.popoverViewController presentPopoverFromRect:rect inView:self.view permittedArrowDirections:0 animated:YES];
Antwoord 9, autoriteit 4%
In swift 3 kun je hiervoor een UIPopoverArrowDirection
-extensie bouwen:
extension UIPopoverArrowDirection {
public static var noArrow: UIPopoverArrowDirection {
return UIPopoverArrowDirection(rawValue: 0)
}
}
en wat je kunt doen:
popoverPresentationController!.permittedArrowDirections = .noArrow
Antwoord 10, autoriteit 3%
Dit werkt prima voor mij.
[popoverController presentPopoverFromRect:CGRectMake(0, 0, 20, 20)
inView:self.view
permittedArrowDirections:NULL
animated:YES];
Geniet van coderen.
Antwoord 11, autoriteit 3%
In mijn geval voor snelle ontwikkelaars
popoverController.sourceView = self.view
popoverController.sourceRect = self.view.bounds
popoverController.backgroundColor = UIColor.brownColor()
popoverController.permittedArrowDirections = UIPopoverArrowDirection.init(rawValue: 0)
popoverController.sourceRect = CGRectMake(width/4, hieght/4, width/2, hieght/2);
Antwoord 12, autoriteit 2%
Nee, er is geen optie UIPopoverArrowDirectionNone
, en UIPopoverArrowDirectionUnknown
genereert een uitzondering, denk ik, als je die probeert te gebruiken om te presenteren.
In plaats van een popover-controller, kun je presentModalViewController:animated:
aanroepen en de controller die je presenteert instellen op een modale presentatiestijl van UIModalPresentationFormSheet
of misschien UIModalPresentationPageSheet
. Dat zijn meer traditionele pop-upschermen dan popovers.
Antwoord 13, autoriteit 2%
Gebruik geen popovers als u geen pijlen wilt weergeven. Presenteer uw viewcontroller als een Modal en gebruik in plaats daarvan een UIModalPresentationFormSheet.
Voorbeeld:
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MyStoryBoard" bundle:nil];
UIViewController* viewController = [sb instantiateViewControllerWithIdentifier:@"myViewController"];
viewController.modalPresentationStyle = UIModalPresentationFormSheet;
[presenterViewController presentViewController: viewController animated:YES completion:^{
}];
Antwoord 14
Probeer deze eens
[popOverController presentPopoverFromRect:CGRectMake(0, 0, 30, 40) inView:popOverContentView permittedArrowDirections:0 animated:NO];
Antwoord 15
Ik gebruik popover om het menu weer te geven, afhankelijk van de aanraakcoördinaat.
In dit geval gebruikt popover de maximale hoogte van self.view
CGRect popeverFrame = CGRectMake(touchPoint.x, touchPoint.y, 0, 0);
[self.popover presentPopoverFromRect:popeverFrame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
Maar als ik de 0-richting gebruik. Popover-rechthoek stelt de hoogte niet in op maximum en kan alleen worden ingesteld door de juiste eigenschap.
CGRect popeverFrame = CGRectMake(touchPoint.x, touchPoint.y, 0, 0);
[self.popover presentPopoverFromRect:popeverFrame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
Hopelijk helpt dit: Hulp bij de grootte van de UIPopOverController
Antwoord 16
Om een pop over de richting none te maken en deze in het midden van de weergavecontroller te laten verschijnen:
let PopSrnVar = popoverPresentationController
let ConRctVar = view.frame
PopSrnVar!.sourceRect = CGRectMake(ConRctVar.width/4, ConRctVar.height/4, ConRctVar.width/2, ConRctVar.height/2)
// To make arrows as none
PopSrnVar!.permittedArrowDirections = UIPopoverArrowDirection()
Antwoord 17
Een eenvoudige oplossing in SWIFT:
popover!.permittedArrowDirections = nil