문제

사용자가 화면의 일부를 클릭하면 키보드처럼 표시하려는 사용자 정의 UI가 있습니다.그러나 uiview.beginanimations가 있지 않은 것에 대해서는 존재하지 않는 UIView의 방법을 참조하는 방법을 참조하십시오.

누구나 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