2017-02-24 4 views
0

xib 파일로 만든 exampleUIViewController가 있습니다. mainView에는 textFields이 포함되어 있습니다. textFieldShouldReturn에서 다음키보드를 표시 할 때 UIViewController 너비가 변경됩니다.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

self.view.frame = self.initialFrame; 

[textField resignFirstResponder]; 

    [UIView animateWithDuration:0.25 animations:^ 
    { 
     CGRect newFrame = [view frame]; 
     newFrame.origin.y -= PORTRAIT_KEYBOARD_HEIGHT; 
     [view setFrame:newFrame]; 

    }completion:^(BOOL finished) 
    { 

    }]; 
return YES; 
} 

:하십시오 textField가 클릭하면 (편집을 시작합니다), 나는 애니메이션 키보드 표시 내가 설정 한 viewDidLoad에서

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField { 

self.view.frame = self.initialFrame; 
[textField resignFirstResponder]; 

    [UIView animateWithDuration:0.25 animations:^ 
    { 
     CGRect newFrame = [view frame]; 
     newFrame.origin.y += PORTRAIT_KEYBOARD_HEIGHT; 
     [view setFrame:newFrame]; 

    }completion:^(BOOL finished) 
    { 

    }]; 

return YES; 
} 

self.initialFrame 등 :

self.intialFrame = self.view.frame;

문제는 키보드가 표시 될 때 mainView 너비가 변경되어 커집니다.

내가 한 일에 어떤 문제가 있습니까? 왜이 문제는 xib 일 뿐이며 UIViewControllerstoryboard으로 생성되지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

0

당신의 viewDidLoad에서 올바른 프레임 크기() 당신이 XIB 또는 스토리 보드의 ViewController와 올바른 프레임보기를 얻을하려는 경우,()

0

viewDidAppear에 시도를 얻을 수 없습니다. 올바른 프레임을 얻을 수

- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 

가장 좋은 방법으로보기를 얻을 그나마 것은

- (void) viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 
    self.intialFrame = self.view.frame; 
} 
입니다