Question

J'ai une interface utilisateur personnalisée que je souhaite afficher comme le clavier lorsqu'un utilisateur clique sur une partie de l'écran.J'ai vu des exemples, mais ils font référence à des méthodes hors de UIView qui ne semblent pas exister (c'est peut-être parce que j'ai la licence Starter ?), par exemple UIView.beginAnimations n'est pas là.

Quelqu'un a-t-il un Xamarin (c'est-à-direMonoTouch) exemple ?

Je souhaite que mon élément d'interface utilisateur s'affiche et fasse défiler la vue existante afin que le champ soit correctement visible.

Était-ce utile?

La solution

UITextView et UITextField avoir inputView propriété, qui vous permet de réaliser exactement ce dont vous avez besoin.Configurez la vue, définissez-la comme vue d'entrée, et une fois que l'utilisateur aura créé une vue de texte ou un premier intervenant dans le champ de texte, votre vue apparaîtra.iOS7 a UIInputView classe, que vous pouvez sous-classer, pour obtenir une vue d’arrière-plan similaire à celle du clavier.

Autres conseils

Pourquoi ne créez-vous pas votre vue et placez-le en dehors de la vue visible.Lorsque vous voulez le montrer, vous venez de le déplacer dans la zone visible.De cette façon, vous pouvez également ajouter l'animation.

NSLayoutConstraint *yourHiddenViewYConstraint;

- (void)viewDidLoad 
{
    [self.view addSubView:yourHiddenView];
    [yourHiddenView setHidden:YES];
    UIView *selfView = self.view
    yourHiddenView.translatesAutoresizingMaskIntoConstraints = NO;
    // add your needed constraints, other than the one below
    yourHiddenViewYConstraint = [NSLayoutConstraint constraintWithItem:yourHiddenView
                                                     attribute:NSLayoutAttributeTop
                                                     relatedBy:NSLayoutRelationEqual
                                                        toItem:selfView
                                                     attribute:NSLayoutAttributeTop
                                                    multiplier:1.0
                                                      constant:0];
    [selfView addConstraint:yourHiddenViewYConstraint];
    yourHiddenViewYConstraint.constant += self.view.frame.size.height;
}

Pour le montrer en cas de besoin:

- (void)showView
{
    [yourHiddenView setHidden:NO];
    dispatch_async(dispatch_get_main_queue(), ^(void) {
        [self changeConstraint:yourHiddenViewYConstraint withConstant:-self.view.frame.size.height];
    });
}

- (void)changeConstraint:(NSLayoutConstraint *)constraint withConstant:(CGFloat)constant
{
    constraint.constant += constant;

    void (^anim)(void) = ^{
        [self.view layoutIfNeeded];
    };

    [UIView animateWithDuration:0.5 animations:anim completion:nil];
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top