문제

경고보기를 약간 더 높이 옮기고 있으므로 화면에 키보드를 장착 할 수 있습니다. 프레임 변수가 합법화되도록 경고를 이미 보여준 후에 경고의 프레임을 잡고 Y를 변경 하여이 작업을 수행합니다. 이것은 시뮬레이터에서 잘 작동하지만 하드웨어 에서이 작업을 수행하면 경고가 올바른 위치에서 시작되지만 거의 즉시 원래 수직 중심 위치로 이동합니다. uialertview 위치는 유용성 가이드 라인에 따라 변경되지 않아야하는 고정 된 것입니까, 아니면 제가 잘못하고 있습니까?

감사!

도움이 되었습니까?

해결책

당신은 이것에 대해 어떤 OS를 시도하고 있습니까? OS 3.0 시뮬레이터와 OS 3.0 장치 모두에서 작동하도록했습니다.

UIAlertView * alert = [ [ UIAlertView alloc ] initWithTitle:@"Alert" message:@"Alert" 
                        delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];

alert.transform = CGAffineTransformTranslate( alert.transform, 0.0, 100.0 );

[ alert show ];

CGAffineTransformTranslate 기존 변환, X 변환 및 ay 변환의 세 가지 인수를 취합니다. 내가 사용한 예에서 경고보기는 평소보다 100 픽셀이 더 높았습니다. 이것을 시도하고 무슨 일이 일어나는지 확인하십시오.

또한 경고의 프레임을 설정할 가능성이 높기 때문에 경고를 표시하기 전에 프레임을 수정할 수 있다고 확신합니다. init 기본적으로 전체 화면의 중심이됩니다.

다른 팁

iOS4가 uialertviews를 돌아 다니기 때문에 까다로워집니다. UialertView에 UitextField 하위 뷰를 추가하면 iOS4에서 키보드가 겹치지 않도록 경고가 이동합니다. 이것은 일어나지 않습니다 <iOS4.

또한 Show가 호출 된 후에도 Alert의 프레임이 초기화되지 않으므로 상대적인 cgaffinetransformation을 수행하는 쉽게 프로그래밍 방식이 없습니다. 유일한 솔루션은 OS 버전을 기반으로 조건부 변환을 수행하는 것입니다.

나에게 이것은 언제든지 변경 될 수있는 uialertviews의 미등록 행동에 대한 스레드처럼 보인다. 애플은 우리가 텍스트와 버튼보다 더 많은 것에 대한 경고를 사용한다는 의미는 없다고 생각합니다 (자체 응용 프로그램 이이 규칙을 위반하더라도).

나는이 유형의 시나리오에 대한 내 자신의 관습 경고를 구축하기 시작할 것입니다.

경고의 의미가 아닙니다 모달 - IE : 경고가 활성화되는 동안 일반적으로 다른 사용자 입력을 수행하지 않습니까? 이 경우 키보드의 가시성이 필요한 이유는 무엇입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top