7
votes

Uislider ne fonctionnera pas quand il devient une sous-vision d'un autre Self.view

Lorsque j'ajoute mon curseur en tant que sous-visView de n'importe quelle vue à côté de Self.View ne fonctionne pas (ne glisse pas) mais cela fonctionne bien lorsqu'il s'agit d'une sous-vision de Self.View. Vous pouvez le voir sur les autres vues à côté de Self.View mais cela ne fonctionne pas.

Voici mon code: P>

alphaSlider = [[UISlider alloc] initWithFrame:CGRectMake(0, 0, 90, 10)];
    [alphaSlider setMinimumValue:0.01];
    [alphaSlider setMaximumValue:1];
    [alphaSlider setValue:0.5];
    [alphaSlider setUserInteractionEnabled:YES];
    [alphaSlider addTarget:self action:@selector(alphaSliderDidChange:) forControlEvents:UIControlEventValueChanged];
    alphaSlider.continuous = YES;
[submenu addSubview:alphaSlider];


0 commentaires

3 Réponses :


15
votes

Il se peut que le sous-menu ne soit pas activé pour l'interaction utilisateur.

[submenu setClipsToBounds:YES];


0 commentaires

10
votes

Vérifiez que la hauteur du cadre du curseur n'est pas trop petite pour permettre une interaction. 10 PT est probablement trop petit.

À partir de iOS 8, mes curseurs ont également cessé de fonctionner.

Dans le passé, la hauteur de cadre d'UIViews comme Uislider, Uiswitch et Uipickerview a été corrigée à une valeur prédéfinie. Vous pouvez définir la hauteur de cadre, mais cela serait ignoré. Au lieu d'essayer de se rappeler, "Quelle est la hauteur d'un uislider dans le paysage sur l'iPad / iPhone?", Je vis de la hauteur à 0 et laissez l'OS attribuer la valeur par défaut.

La réponse de David Braun"> La réponse de David Braun m'a conduit à réaliser que mes cadres Uislider avaient la hauteur 0 qui handicapée interaction utilisateur.


2 commentaires

Je n'avais jamais pensé à vérifier la taille du cadre moi-même. +1


Merci .. Dans mon cas, le curseur était à l'intérieur de Stackview, ce qui a causé problème. Juste ajout de la contrainte de hauteur, une valeur de résistance à la courge et à la compression pour le curseur et le fonctionnement.



-1
votes

J'ai eu un problème similaire, où le curseur n'avait pas la ligne horizontale, juste le bouton blanc et n'a pas répondu du tout. Basé sur ce qui précède, j'ai réalisé que mes curseurs étaient plus larges que ma zone de sécurité. Définissez des contraintes sur les 2 côtés et maintenant cela fonctionne simplement bien.


0 commentaires