Domanda

Ho un UI personalizzato che voglio mostrare come la tastiera quando un utente fa clic su una parte dello schermo.Ho visto esempi comunque che fanno riferimento ai metodi di riferimento di UIView che non sembrano esistere (forse è perché ho la licenza di avviamento?) Ad esempio, UIView.Beginanimations non c'è.

Qualcuno ha uno Xamarin (I.e. Monotouch) Esempio?

Voglio che il mio pezzo dell'interfaccia utente da mostrare, e per scorrere la vista esistente in modo che il campo sia correttamente visibile.

È stato utile?

Soluzione

UITextView e UITextField hanno proprietà inputView, che consente di ottenere esattamente ciò di cui hai bisogno.Impostare la vista, impostalo come vista in ingresso e una volta che l'utente effettua una vista di testo o un campo di testo Primo responder, apparirà la tua vista.IOS7 ha una classe generacodictagcode, che è possibile sottoclasse, per ottenere una vista di sfondo simile come la tastiera.

Altri suggerimenti

Perché non crei la tua vista e mettilo fuori dalla vista visibile.Quando vuoi mostrarlo, spostalo solo nell'area visibile.In questo modo puoi anche aggiungere l'animazione.

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;
}
.

Per mostrarlo quando necessario:

- (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];
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top