Comment modifier la taille d'une liste
Je vais avoir du mal à changer la taille de ma liste de présentation. Voici ce que j'ai jusqu'à présent
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) //func for popover
{
if segue.identifier == "popoverView"
{
let vc = segue.destinationViewController
let controller = vc.popoverPresentationController
if controller != nil
{
controller?.delegate = self
controller?.sourceView = self.view
controller?.sourceRect = CGRect(x:CGRectGetMidX(self.view.bounds), y: CGRectGetMidY(self.view.bounds),width: 315,height: 230)
controller?.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
}
}
}
Si loin de tout cela est le centre de la liste et supprimer la flèche, ce qui est bon. mais il n'est pas redimensionner le conteneur. toute aide serait grandement appréciée. merci.
lorsque j'utilise preferredContentSize je reçois le message d'erreur "Ne peut pas l'affecter à la propriété: 'preferredContentSize' est immuable"
- Pourquoi ne pas vous présenter comme un formulaire modal de la feuille au lieu d'essayer d'utiliser une liste dans une manière qui n'est pas prévu?
- Double Possible de Comment puis-je régler ma liste à la taille du contenu de mon tableview dans swift?
- désolé, je n'ai pas préciser. Ce sera pour l'iPhone. selon apple, vous ne pouvez pas redimensionner un formulaire modal de la feuille sur iPhone, mais vous pouvez sur un iPad. Sauf si j'ai lu que de mal. j'ai également essayé de plusieurs façons différentes pour re-taille de la liste, mais rien ne semble fonctionner. Je suis sûr qu'il ya une solution simple pour le code que j'ai fourni. Je n'en ai pas encore trouvé.
Vous devez vous connecter pour publier un commentaire.
Définir le contenu de la taille de la vue-contrôleur étant pas présenté à la
popoverPresentationController
Je fixe via storyboard :
Cliquez sur votre contrôleur
Cliquez sur l'Attribut de l'inspecteur
ViewController>
Cochez la case Utiliser Préféré Explicite de la taille et de valeurs d'entrée.
Je ne suis pas en utilisant des story-boards. Je viens de présenter un UINavigationController dans la liste:
La façon de redimensionner la taille de la liste lorsqu'un nouveau-vue-contrôleur est poussé, c'est juste un changement de la preferredContentSize avant de le pousser. Par exemple:
Le problème, c'est quand nous avons essayé de redimensionner la fenêtre pop-over quand nous pop une-vue-contrôleur.
Si vous utilisez viewWillDisappear de la vue actuelle du contrôleur pour modifier le preferredContentSize de la liste, la liste est redimensionné, mais après le point de vue du contrôleur est sorti. Cela signifie que l'animation a un retard.
Vous devez changer le preferredContentSize avant l'exécution de popViewController. C'est dire que vous devez créer un bouton précédent de la barre de navigation comme il est expliqué ici. C'est la mise en œuvre mis à jour pour Swift 4:
Et exécutez le code suivant lorsque le nouveau bouton est pressé:
Fondamentalement, la preferredContentSize doit être changé avant de le pousser avec force le point de vue du contrôleur.
Réponses ci-dessus sont correctes laquelle les états sur l'utilisation de l'
preferredContentSize
, mais la chose la plus importante est de mettre en œuvre le protocoleUIPopoverPresentationControllerDelegate
et de mettre en œuvre la méthode ci-dessous sinon il ne sera pas modifier la taille du contenu comme prévu.