Xamarin - キーボードのように、他の人の上に表示する方法
質問
カスタムUIを持っているユーザーが画面の一部をクリックしたときにキーボードのように表示したいです。ただし、存在しないように見えないUViewからのメソッドを参照しました。たとえば、UIView.beginanimationsはありません。
誰もXAMARIN(すなわちMonotouch)の例を持っていますか?
私のUIの作用が表示され、既存のビューをスクロールしてフィールドが正しく表示されます。
解決
UITextView
とUITextField
には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];
}
. 所属していません StackOverflow