2017-09-14 12 views
4

여기에 비슷한 문제를 해결하는 this other question가 있지만이 경우 Xcode의 동작이 정확하고 성가신 경우입니다. 내 경우"고정 된 선행 및 후행 제약으로 인해 클리핑이 발생할 수 있습니다"라는 버그가 있습니까?

그러나, 나는 그것이 실제로 버그 생각 :

example

그 라벨이 잘린되지 않을 것이다, 그래서 텍스트는 중단됩니다, 라인의 무제한 수 있습니다.

그것은 모든 현지화와 함께 잘 작동 :

example2

내가 레이블을 중심으로하는 원하고 내가 텍스트가 최소 20 픽셀 떨어진 여백에서가되고 싶어요, 그래서 나는이에 대한 고정 된 제약 조건을 설정 앞과 뒤. Xcode는 그 중 하나를 "보다 크거나 같음"제약 조건으로 변경하기를 원하지만,이 경우 텍스트가 완벽하게 가운데 정렬되지는 않습니다 (시도했습니다).

내가 원하는 것은 중앙에있는 텍스트로 여백에 너무 가깝지는 않지만 지금은 경고를 표시하지 않고는이를 수행 할 수 없습니다.

해결 방법에 대한 의견이 있으십니까? 정말 버그입니까, 아니면 제가 잘못하고있는 것입니까?


편집 : 다음은 오류를 보여주는 스크린 샷입니다. 제약 조건은 뷰 컨트롤러에 직접적으로 적용되는 것이 아니라 테이블 뷰의 백 그라운드로 사용되는 하위 뷰에 있습니다. 이러한 제약 조건을 제거하면 경고가 사라집니다. 내가 다시 추가하면 다시 나타납니다. 나는 이것을 새로운 프로젝트에서 시도했는데 그것을 재현 할 수 없었습니다. 왜 그런 일이 일어나고 있는지 전혀 모르겠습니다.

example3

편집 :

는 여기에 또 다른 예입니다. 마자 내가 설정 한

example4

을 "동일한", 붐하기 : 권리 제약 "보다 크거나 같은"로 설정하면 모든 잘입니다

example5

+0

경고를 게시 할 수 있습니까? 그리고 xcode는 당신을 사용하고 있습니까? –

+0

@ReinierMelian Xcode 9; 나는 그것을 태그로 설정했지만 본문에서 언급하는 것을 잊었다. 경고는 제목의 경고입니다. 전체 텍스트는 "고정 된 선행 및 후행 구속 조건으로 클리핑이 발생할 수 있으며, 그 중 하나는 일정한 ≥ 표준 공간을 가져야합니다"라고 말합니다. 감사. :) – dbmrq

+0

@ReinierMelian 제약 조건 중 하나를 "크거나 같음"으로 설정하면 경고가 사라지지만 텍스트는 뷰의 가운데에 배치되지 않습니다. – dbmrq

답변

2

엑스 코드에서 검사 9GM (버전 9.0 (9A235))는, 올바르게

enter image description here

레모 작동 제약 조건을 설정하고 수동으로 추가하십시오.

+0

얼마나 이상할까요, 그냥 새로운 프로젝트에서 시도해 보았지만 제대로 작동하지만 어떤 이유로 제약 조건을 제거하고 다시 추가하더라도 이전에 작업했던 프로젝트에서 계속 발생합니다. :/ – dbmrq

+0

@dbmrq이 VC의 나머지보기와 제한 사항으로 스크린 샷을 만드십시오. – OMGHaveFun

+0

다른 스크린 샷으로 내 질문을 편집했습니다. 당신의 도움을 주셔서 감사합니다. – dbmrq

2

여기 Xcode9의 최종 버전에서 도입 된 몇 가지 문제가 있습니다. 버그가 언어 방향과 관련이있는 것 같습니다 : Interface Builder는 기본 언어 방향 조건에 대한 자동 레이아웃을 이해하지 못합니다.

Repose에서이 thread으로 제안한대로 실패한 제약 조건 중 하나 이상 (예 : 후행)에 대한 언어 방향 사용을 무효화해야합니다. 이 접근법은 나의 경고를 해결했다.

1

답을 찾고 있다면 특별한 경우 레이블에 비례 폭을 설정하고보기 컨트롤러의보기에 수평으로 놓으십시오. 라벨에

모두 삭제 제약 조건은 Background View에 라벨에서 드래그를 마우스 오른쪽 버튼으로 클릭하고 Equal Widths, Center Horizontally in ContainerCenter Vertically in Container 팝업 메뉴에서 선택합니다.

레이블의 왼쪽과 오른쪽 모두에 20 픽셀의 여백을두고 싶다면 Multiplier을 같은 너비 제약 조건으로 편집하고 widthOfBackgroundView - 40)/widthOfBackgroundView으로 설정하십시오.

배경보기의 너비가 414이고 배율을 374/414으로 가정 해 봅시다.

width minus 40 배율을 적용한 이유는 레이블의 양쪽에 20px를 포함하기 때문입니다. 이렇게하면 경고가 사라지고 레이블이 예상대로 배치됩니다.

나는 동일한 문제가있어서 이런 식으로 경고를 고칠 수있었습니다. 희망이 도움이!

+0

안녕하세요. 답변을 ping하지 마십시오. 주석을 사용하십시오. 어쨌든 질문의 저자가 대답을 볼 것입니다. – Simon

+0

경고가 파란색에서 사라진 것 같지만, 좋은 생각입니다. 다시 발생하면이를 명심하십시오. :) – dbmrq