iMessage Extension에 매우 기본적인보기 컨트롤러가 있습니다. (확장 된 뷰). Compact view에서 키보드 입력을 할 수 없다는 것을 알고 있습니다 ...iMessage 확장 : Child View Controller의 UITextView, 스크롤 동작에 여러 가지 문제가 있습니다.
UITextView는 그 위와 아래에있는 요소에 구속됩니다. 높이와 너비가 설정되어 있습니다. 제약 조건은 모두 순서대로 이루어지며 깨지지 않습니다.
인터페이스 빌더의 textview에있는 모든 옵션이 기본값으로 남았습니다.
다음과 같은 문제는 UITextView 발생 : 내가 편집을 시작하면 커서가 거의 볼 수
. (필드의 아래쪽에, 반은 수직으로 자른다).
첫 글자를 입력하면 커서가 텍스트보기의 수직 가운데로 이동합니다.
새 줄과 문자를 놓으면 커서가 다시 내려갑니다.
그런 다음 후속 문자를 입력하면 커서가 수직 중심으로 다시 이동합니다. 그리고 다른 모든 문자는 전체 텍스트보기를 맨 아래로 다시 스크롤합니다. 그래서이 모든 이상한 동작을 모든 키 스트로크에서 위아래로 바운스하게 만듭니다.
오른쪽의 스크롤 막대 시각적 힌트가 스크롤 할 때 텍스트보기의 적절한 높이를 반영하지 않습니다. (스크롤 바는 절반 길을 간다 - 텍스트 뷰의 높이.)
내가 UITextView 기본적으로이 같은 일을 기대 :
- 커서가의 TOP으로 이동한다
텍스트보기 (활성화되었을 때) 및 편집.
새 줄 뒤에 키를 입력 할 때 텍스트보기가 건너 뛰지 않아야합니다.
세로 스크롤 막대 표시기는 텍스트 필드의 전체 범위를 표시해야하며 절반은 표시하지 않아야합니다.
분명히 텍스트보기 내부의 스크롤보기는 사물의 크기를 알아내는 데 문제가 있습니다.
누구나 알고 있겠습니까? iMessage와 관련된 문제이거나 다른 사람도 iMessage 외부에서이 문제를 겪고 있는지, 수정 방법은 알고 계십니까? 문제의
비디오 데모 :
내 IB 제약 (두 번째 아래로보기 텍스트보기이다) https://youtu.be/1bkvHnkXLWM
업데이트 : 안에 내보기 컨트롤러를 포함하는 아이 뷰 컨트롤러를 사용하고 루트 컨트롤러. 빈 Hello World 응용 프로그램을 시도하고 UITextView 기본적으로 정상적으로 작동합니다. 따라서이 문제는 Child View Controller를 포함하는 방식과 관련이 있습니다.
- (void)showViewController:(UIViewController*)vcToShow isPop:(BOOL)isPop
{
NSLog(@"Presenting Controller: %@", vcToShow);
[self.activeVC willMoveToParentViewController:nil];
[self addChildViewController:vcToShow];
vcToShow.view.translatesAutoresizingMaskIntoConstraints = NO;
vcToShow.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.rootView addControls:@[vcToShow.view]
align:VerticalAlignStretchToFullHeight];
UIViewController* currentVC = self.activeVC;
self.activeVC = vcToShow;
vcToShow.view.alpha = 0.0f;
[self transitionFromViewController:currentVC
toViewController:vcToShow
duration:0.3
options:UIViewAnimationOptionTransitionNone
animations:^{
vcToShow.view.alpha = 1.0f;
}
completion:^(BOOL finished) {
[currentVC removeFromParentViewController];
[vcToShow didMoveToParentViewController:self];
[self updateScreenState];
if (isPop) {
[self removeReferenceToController:currentVC];
}
}];
}
을하지만, 라인 수 있습니다 :' vcToShow.view.translatesAutoresizingMaskIntoConstraints = NO;'? 나중에 자동 크기 조정 마스크를 사용하고 있는데, 'YES'로 설정하지 않아도됩니까? –
안녕하세요. 변경 translateAutoresizingMaskIntoConstraints 예, UITextView 영향을주지 않았다. 감사. – Alex