2010-04-12 13 views
4

J'ai une application iPad avec une table "tiroir" affichée dans un popover. L'utilisateur peut appuyer et maintenir sur un élément dans le tiroir pour faire glisser cet élément hors de celui-ci et dans ma vue principale. Cette partie fonctionne bien; malheureusement, la vue en train d'être déplacée apparaît sous le survol, et est trop petite pour être visible jusqu'à ce qu'elle soit traînée par dessous. Si j'ajoute la vue comme une sous-vue du contrôleur de vue dans le popover, il est coupé par le cadre de la popover, et comme je ne peux pas accéder à la vue de UIPopoverController, je ne peux pas désactiver masksToBounds de sa couche -et Ce ne serait probablement pas une bonne idée de toute façon. Je suspecte que je pourrais employer un UIWindow additionnel avec une valeur élevée windowLevel pour forcer la vue traînée à apparaître au-dessus du popover, mais ceci semble comme exagérer. Y a-t-il une meilleure solution?Comment ajouter une vue sur un UIPopoverController

Répondre

7

Vous l'avez. UIWindow fonctionne très bien. Code:

// when drag starts 
draggingView = [[UIWindow alloc] initWithFrame:CGRectMake(0,0,100,100)]; 
draggingView.windowLevel = UIWindowLevelAlert; 
draggingView.center = [gestureRecognizer locationInView:self.view.window]; 
[draggingView makeKeyAndVisible]; 

// when drag ends 
[draggingView release]; 
draggingView = nil; 
0

Ajout du Swift Version:

let windows: [UIWindow] = UIApplication.shared.windows 
    let firstWindow: UIWindow = windows[0] 

    firstWindow.addSubview(loadingView) 
    firstWindow.bringSubview(toFront: loadingView) 

EDIT à l'admin: Merci pour l'examen - supprimé mon autre réponse en double exemplaire How to show a UIView OVER a UIPopoverController

Questions connexes