[ios] Xcode 9- “고정 너비 제한으로 인해 클리핑이 발생할 수 있음”및 기타 현지화 경고

새 Xcode를 다운로드했고 Interface Builder에서 다음과 같은 경고와 관련된 많은 문제가 있습니다.

고정 폭 제약으로 인해 클리핑이 발생할 수 있음

다음과 같이 보입니다 :

여기에 이미지 설명을 입력하십시오

여러 언어로 현지화되어 있고 다른 언어에서는 레이블 크기가 변경 될 수 있다는 경고를 이해하지만 내 앱에는이 문제가 없습니다. 어제 Xcode 8에서 실행하고 테스트했지만 괜찮 았습니다. 무의미한 새로운 제약 조건을 추가하는 데 몇 시간과 몇 시간을 보내고 싶지 않습니다.

제안 된 해결책이 있습니까?



답변

내 앱에 여러 언어가 없어도 동일한 경고 가 표시되어 실제로 무슨 일이 일어나고 있는지 알 수있었습니다. . .

여기에는 몇 가지 다른 일이 있습니다. 객체 간격의 너비를 고정 너비에서 크거나 같 거나 작게 변경하여 내 앱에서 고정 너비 경고 수있었습니다 .

인터페이스 빌더에서 객체를 선택하고 크기 관리자로 이동하여 객체를 변경하면됩니다.

여기에 이미지 설명을 입력하십시오


또는 문서 개요에서 제약 조건을 선택하고 크기 관리자로 이동하여 여기에서 변경하십시오.

여기에 이미지 설명을 입력하십시오



스크린 샷 상단에있는 경고 :

중심 구속 조건이있는 고정 선행 및 후행 구속 조건이 클리핑을 유발할 수 있음

다음은 정확히 동일한 경고가 표시되는 내 앱의 스크린 샷입니다.

여기에 이미지 설명을 입력하십시오

나는 @ 기호가 붙은 레이블 이 버튼을 앞뒤로 설정하고 가운데에 등급 레이블을 맞추도록했습니다 . 나는 일단 중앙 정렬 제약 조건을 제거 , 경고는 사라,하지만이 객체의 잘못 배치 세트 남겨졌다.

그런 다음 스택 뷰받아들이겠다고 사임했습니다 . 사용하는 것만 큼 성가 시게, 모든 제약 조건과 설정을 올바르게하면 경고없이 아름답게 배치됩니다.


편집하다

으로 휴식이 의견의 글을, 때로는 단순히 확실 두 가지 요소가 겹치지 않도록하고있다, 당신이 필요로 할 것이다> = 0를 추가.


답변

제한 조건에 따라 “언어 방향 존중”을 비활성화하여 경고를 끄고 도움이되는지 확인할 수 있습니다. 구속 조건을 선택하고 속성 / 크기 검사기를 엽니 다. 첨부 된 이미지를 참조하십시오.

앱을 다른 언어로 지역화하지 않으려는 경우이 솔루션에 폴 백이 없어야합니다. 현지화 된 앱의 경우 레이블 및 글꼴 크기를 더 잘 인식해야합니다.

ps이 솔루션은 iOS에서 작동합니다. macOS의 경우 경고를 끄려면> = 또는 <=를 시도하십시오.

아래 그림의 pps 레이블은 NSMutableAttributedString을 사용하여 단일 UILabel 또는 UITextView에서 AutoLayout 및 ValueedString 속성을 사용하여 훨씬 쉽게 만들 수 있습니다. 이미지는 데모 용입니다.

무례한 언어 방향


답변

현지화 된 레이블 및 버튼의 경우이 경고는 의미가 있으며 레이블이 겹치지 않도록 필요한 제약 조건을 제공해야합니다. 그들이 지금 겹치지 않는다면 미래에 있을지도 모르므로 제약을 제공하는 것이 아프지 않을 것입니다.

Xcode를 사용하면 이러한 제약 조건을 자동으로 추가 할 수 있습니다.

스토리 보드의 문서 개요에서 노란색 화살표를 클릭하고 화면의 텍스트 위치 (왼쪽 또는 오른쪽)에 따라 “고정 고정”또는 “고정 고정”을 선택하십시오. 대부분의 문제를 해결합니다.

Xcode 스크린 샷

텍스트가없는 단추 (이미지 만) 에이 문제가있는 경우 단추에 대해 여전히 설정 될 수있는 “기본 제목”을 제거하십시오.

Xcode 스크린 샷


답변

을 사용하면 is 및 속성을 Labels설정 하여 다음과 같이 경고 를 제거 할 수 있습니다 .Lines0AutoshrinkMinimum Font SizeFixed Width Constraints May Cause Clipping

여기에 이미지 설명을 입력하십시오


답변

또 다른 빠른 해결책!

제목을 일반 텍스트에서 속성 텍스트로 변경하여 UIButton의 경우 내 문제가 해결되었습니다.

여기에 이미지 설명을 입력하십시오


답변

이 질문에 이미 답변했지만 내 경우 에이 오류를 해결하기 위해 수행 한 것은 “종횡비”속성을 추가 한 다음 너비 또는 높이 제약 조건을 제거하고 이것이 잘 작동하고 노력이 덜한 것이 었습니다. 동일한 출력과 다른 장치에 대한 내 견해를 조정하십시오.


답변

스위프트 4, Xcode 9.1 :

이 문제에 대해서는, 개체가 생각하는 그것의 슈퍼 뷰의 맥락에서 정확한 중심 위치의 모르는 및 사용하여 제거, 이상 대부분의 시간의 제대로 작동하지 않습니다 또는 다른 선두 / 설정을 trealing합니다. 먼저 수퍼 뷰의 올바른 제약 조건을 확인해야합니다.

Superview / s가 올바르게 설정되어 있으면 “Horizontally in Container” 제약 조건 을 설정하여 뷰에서 올바른 위치를 “설명”하려고 할 수 있습니다 .

여기에 이미지 설명을 입력하십시오