質問

カスタムUIを持っているユーザーが画面の一部をクリックしたときにキーボードのように表示したいです。ただし、存在しないように見えないUViewからのメソッドを参照しました。たとえば、UIView.beginanimationsはありません。

誰もXAMARIN(すなわちMonotouch)の例を持っていますか?

私のUIの作用が表示され、既存のビューをスクロールしてフィールドが正しく表示されます。

役に立ちましたか?

解決

UITextViewUITextFieldにはinputViewプロパティがあります。これにより、必要なものを正確に達成できます。ビューを設定し、それを入力ビューとして設定し、ユーザーがテキストビューまたは最初のテキストフィールドを最初にレスポンダしたら、ビューが表示されます。IOS7には、キーボードと同様の背景ビューを実現するためにサブクラス化することができるUIInputViewクラスがあります。

他のヒント

ビューを作成して表示ビューの外側に配置しないのはなぜですか。それを見せたいときは、目に見える領域に移動します。そのようにあなたはまたアニメーションを追加することができます。

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

必要なときに表示するには:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top