iOS 11 도구 모음 AutoLayout 정보
4975 단어 AutoLayouttoolbarios11
iOS11 대응은 어때, 힘들지.
이번에는 도구막대 레이아웃 붕괴에 대응하는 tips입니다.
NDA가 켜졌기 때문에 정말 설명하고 싶은데 무사히 아웃될 수 있을지 모르겠어요.
나는 교재로 설명하고 싶다.
원래 도구 모음의 AutoLayout은 무엇입니까?
https://developer.apple.com/videos/play/wwdc2017/204/
이 비디오테이프는 약 30분 정도 지나자 "네비게이션 주변의 AutoLayou가 대응했다"(초의역)
그래서, 뭐랄까, 어떻게 이런 일을 하든지 특별한 접촉이 없다(영어를 아는 사람은 알 수 있다)
그러니까 어떻게 되는지.
오류를 표시합니다.
교정쇄를 부착할 수 없어서 대단한 설명을 이해하기 어려웠습니다. 죄송합니다.
화면 폭을 6등분으로 나누는 단추를 도구 모음에 놓은 상태에서 오류가 발생했습니다.
화면이 이동할 때 다운이 생겼거나
까닭
AutoLayout은 물론이고
도구 모음의 AutoLayout에 표시된 View Hierrarchy 표시 도구 모음의view에 StackView 확장 클래스가 있음(비공개 클래스)
UIToolber > _UIToolbarContentView > _UIButtonBarStackView
상황이 이렇다.
UIBARButon Item(custom View:)에서 view를 구성하면 이 StackView에 view가 구성됩니다.
왜 붕괴의 1
여러분, storyboard와xib에 대상을 설정한 사람은 변형 좌우에 16px의 커미션 제한이 있기 때문에 알아야 합니다.
수수께끼 같은 16px에 대해 이미 많은 선조들이 고찰하고 있으니 읽어 주십시오
예: http://qiita.com/yimajo/items/10f16629200f1beb7852
그럼, 즉 어떻게 된 일인지 말하기 전에 화면의 넓이를 표시한 버튼 수를 제외하고 도구 모음의 버튼 넓이를 결정하고custoomview를 만든다.
UIBARbuttonItemu의 경우
이 정도의 16px, 즉 32px의 편차가 생길 수 있다.
toolbar은 AutoLayout을 통해 버튼을 교묘하게 표시하려고 하기 때문에 어떤 단추가 모여서 작아집니다
최악의 경우 그림을 그릴 때 메모리를 자꾸 먹으면 다운된다.
따라서 iOS 11에서 버튼을 도구 모음에 균등한 너비로 깔 때 화면 너비의 36px를 고려해야 한다.
일정한 제한이 있기 때문에 toolbar에서subviews를 찾다가 StackView를 발견하고 constraint를 하면 16px가 0px가 되어 회피할 수 있지만 비공개 반이기 때문에 너무 아슬아슬한 일은 하지 않는 것이 좋다고 생각합니다.
왜 붕괴의 2
그 1은 붕괴가 막 나으려고 하는 순간 또 오차가 생겼다는 뜻이다.
도구 모음을 표시할 때마다(도구 모음 단추를 깔지 않은 화면과 표시하지 않은 화면)의 가장자리가 변한다.
나는 이것이 왜 조사를 진행했는지 생각한다.
디스플레이의 붕괴를 일으키는 부분은 화면의 왼쪽과 오른쪽에 단추가 있고 중간에 공백이 있는 구조이다
이를 위해 비즈니스에서 사용하는 애플리케이션은 투명한 커스텀 뷰를 위에 부착하는 UIBAR Buton Item으로 그 기간을 채우는 방법을 사용했습니다.
이런 느낌
결론적으로 이것은 좋지 않다.
UIButton BarStackView 설정
비공개 적 이지만 전라 하였다
설정이지만.
axis: horizontal
alignment: center
distribution: fill
예, 그렇습니다.
그중에 디스패치 정보가 중요해요.
http://qiita.com/yucovin/items/ff58fcbd60ca81de77cb
StackView의 distribution과 fill이 어떤 상태인지 말씀드리자면요.
StackView 내의 View를 꽉 찬 StackView로 확대하여 표시하는 설정입니다.
StackView와 경쟁 우위 확보
따라서 고정된 너비의 View를 항상 toolbar에 놓으면 (또는 이렇게 할 수밖에 없다)
StackView를 늘리려는 구속과 충돌하면 디스플레이가 충돌합니다.보기만 해도 일어나지 않아도 View Hierrarchy를 보면 편안해!마크의 경고가 나왔을 수도 있어.
어떻게 해결합니까
UIBARButon Item 사용(barButon System:.flexble Space, ~)
도구막대에 부드러운 공백을 두기 위해 사용하는 물건입니다(좋은 설명이 떠오르지 않습니다)
그러고 보니 그렇긴 한데 고정폭이 좋지 않으면
가변 너비로 채워주세요!그러게 말이야.
예를 들어 두 개의 setToolbar의 넓이가 도구막대의 넓이를 완전히 채울 수 없는 경우: [button,button]
화면의 양쪽에 버튼이 설정됩니다.
경고가 표시되지 않습니다.
다음 도구막대의 화면 폭을 채우지 않는 세 개의 단추 setToolbar일 때: [button, button, button]
구성은 다음 그림과 같습니다.
StackView의 구성이 매우 나쁘기 때문입니다.
이 단추를 왼쪽 2개, 오른쪽 1개로 설정한 경우, 간격에 고정값이 투명한view를 놓으면 경고 표시가 붕괴됩니다
setTool barItmes
이렇게 된 느낌이 경고 없이 드러났다.
공간을 제대로 여는 방법인 것 같아요.
이게 끝이 아니에요.
경고도 사라졌고 표식도 사라졌으니 다행이다.
화면 전환 전view controller의navigationbar와 setToolbar 등 애니메이션과 관련된 시기에 setToolbar에서 이런 일이 발생할 수 있다(혹시 다른 것도 발생할 수 있다)
버튼의 개수가 바뀌면 autolayout의 조정 실행 시 애니메이션이 눈앞에 나타납니다.
그래서 setTool BarItem 이후의 상황에 따라...
viewController.navigationController.toolBar.layoutIfNeeded()
AutoLayout에 빨리 반응하는 게 좋을 것 같아요.
후기
워낙 시행이 잘 안 됐다는 의혹이 있었지만, 푹 빠지는 것 같아 Qita에 남게 됐다.
논단에서 많이 알려진 것 같은데 같은 곳에서 빠진 사람도 있을 거예요
https://forums.developer.apple.com/thread/80075
iOS 11이 끝난 줄 알았는데 다음은 아이폰X 대응이죠
아무튼 곧 있을 LINE DEVELOPER DAY를 즐겨보고 싶습니다.
그럼 그럼... 단락이 더 있다면.
Reference
이 문제에 관하여(iOS 11 도구 모음 AutoLayout 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HirotoshiKawauchi/items/ebd07e1b60f13f5fade9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
오류를 표시합니다.
교정쇄를 부착할 수 없어서 대단한 설명을 이해하기 어려웠습니다. 죄송합니다.
화면 폭을 6등분으로 나누는 단추를 도구 모음에 놓은 상태에서 오류가 발생했습니다.
화면이 이동할 때 다운이 생겼거나
까닭
AutoLayout은 물론이고
도구 모음의 AutoLayout에 표시된 View Hierrarchy 표시 도구 모음의view에 StackView 확장 클래스가 있음(비공개 클래스)
UIToolber > _UIToolbarContentView > _UIButtonBarStackView
상황이 이렇다.
UIBARButon Item(custom View:)에서 view를 구성하면 이 StackView에 view가 구성됩니다.
왜 붕괴의 1
여러분, storyboard와xib에 대상을 설정한 사람은 변형 좌우에 16px의 커미션 제한이 있기 때문에 알아야 합니다.
수수께끼 같은 16px에 대해 이미 많은 선조들이 고찰하고 있으니 읽어 주십시오
예: http://qiita.com/yimajo/items/10f16629200f1beb7852
그럼, 즉 어떻게 된 일인지 말하기 전에 화면의 넓이를 표시한 버튼 수를 제외하고 도구 모음의 버튼 넓이를 결정하고custoomview를 만든다.
UIBARbuttonItemu의 경우
이 정도의 16px, 즉 32px의 편차가 생길 수 있다.
toolbar은 AutoLayout을 통해 버튼을 교묘하게 표시하려고 하기 때문에 어떤 단추가 모여서 작아집니다
최악의 경우 그림을 그릴 때 메모리를 자꾸 먹으면 다운된다.
따라서 iOS 11에서 버튼을 도구 모음에 균등한 너비로 깔 때 화면 너비의 36px를 고려해야 한다.
일정한 제한이 있기 때문에 toolbar에서subviews를 찾다가 StackView를 발견하고 constraint를 하면 16px가 0px가 되어 회피할 수 있지만 비공개 반이기 때문에 너무 아슬아슬한 일은 하지 않는 것이 좋다고 생각합니다.
왜 붕괴의 2
그 1은 붕괴가 막 나으려고 하는 순간 또 오차가 생겼다는 뜻이다.
도구 모음을 표시할 때마다(도구 모음 단추를 깔지 않은 화면과 표시하지 않은 화면)의 가장자리가 변한다.
나는 이것이 왜 조사를 진행했는지 생각한다.
디스플레이의 붕괴를 일으키는 부분은 화면의 왼쪽과 오른쪽에 단추가 있고 중간에 공백이 있는 구조이다
이를 위해 비즈니스에서 사용하는 애플리케이션은 투명한 커스텀 뷰를 위에 부착하는 UIBAR Buton Item으로 그 기간을 채우는 방법을 사용했습니다.
이런 느낌
결론적으로 이것은 좋지 않다.
UIButton BarStackView 설정
비공개 적 이지만 전라 하였다
설정이지만.
axis: horizontal
alignment: center
distribution: fill
예, 그렇습니다.
그중에 디스패치 정보가 중요해요.
http://qiita.com/yucovin/items/ff58fcbd60ca81de77cb
StackView의 distribution과 fill이 어떤 상태인지 말씀드리자면요.
StackView 내의 View를 꽉 찬 StackView로 확대하여 표시하는 설정입니다.
StackView와 경쟁 우위 확보
따라서 고정된 너비의 View를 항상 toolbar에 놓으면 (또는 이렇게 할 수밖에 없다)
StackView를 늘리려는 구속과 충돌하면 디스플레이가 충돌합니다.보기만 해도 일어나지 않아도 View Hierrarchy를 보면 편안해!마크의 경고가 나왔을 수도 있어.
어떻게 해결합니까
UIBARButon Item 사용(barButon System:.flexble Space, ~)
도구막대에 부드러운 공백을 두기 위해 사용하는 물건입니다(좋은 설명이 떠오르지 않습니다)
그러고 보니 그렇긴 한데 고정폭이 좋지 않으면
가변 너비로 채워주세요!그러게 말이야.
예를 들어 두 개의 setToolbar의 넓이가 도구막대의 넓이를 완전히 채울 수 없는 경우: [button,button]
화면의 양쪽에 버튼이 설정됩니다.
경고가 표시되지 않습니다.
다음 도구막대의 화면 폭을 채우지 않는 세 개의 단추 setToolbar일 때: [button, button, button]
구성은 다음 그림과 같습니다.
StackView의 구성이 매우 나쁘기 때문입니다.
이 단추를 왼쪽 2개, 오른쪽 1개로 설정한 경우, 간격에 고정값이 투명한view를 놓으면 경고 표시가 붕괴됩니다
setTool barItmes
이렇게 된 느낌이 경고 없이 드러났다.
공간을 제대로 여는 방법인 것 같아요.
이게 끝이 아니에요.
경고도 사라졌고 표식도 사라졌으니 다행이다.
화면 전환 전view controller의navigationbar와 setToolbar 등 애니메이션과 관련된 시기에 setToolbar에서 이런 일이 발생할 수 있다(혹시 다른 것도 발생할 수 있다)
버튼의 개수가 바뀌면 autolayout의 조정 실행 시 애니메이션이 눈앞에 나타납니다.
그래서 setTool BarItem 이후의 상황에 따라...
viewController.navigationController.toolBar.layoutIfNeeded()
AutoLayout에 빨리 반응하는 게 좋을 것 같아요.
후기
워낙 시행이 잘 안 됐다는 의혹이 있었지만, 푹 빠지는 것 같아 Qita에 남게 됐다.
논단에서 많이 알려진 것 같은데 같은 곳에서 빠진 사람도 있을 거예요
https://forums.developer.apple.com/thread/80075
iOS 11이 끝난 줄 알았는데 다음은 아이폰X 대응이죠
아무튼 곧 있을 LINE DEVELOPER DAY를 즐겨보고 싶습니다.
그럼 그럼... 단락이 더 있다면.
Reference
이 문제에 관하여(iOS 11 도구 모음 AutoLayout 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HirotoshiKawauchi/items/ebd07e1b60f13f5fade9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여러분, storyboard와xib에 대상을 설정한 사람은 변형 좌우에 16px의 커미션 제한이 있기 때문에 알아야 합니다.
수수께끼 같은 16px에 대해 이미 많은 선조들이 고찰하고 있으니 읽어 주십시오
예: http://qiita.com/yimajo/items/10f16629200f1beb7852
그럼, 즉 어떻게 된 일인지 말하기 전에 화면의 넓이를 표시한 버튼 수를 제외하고 도구 모음의 버튼 넓이를 결정하고custoomview를 만든다.
UIBARbuttonItemu의 경우
이 정도의 16px, 즉 32px의 편차가 생길 수 있다.
toolbar은 AutoLayout을 통해 버튼을 교묘하게 표시하려고 하기 때문에 어떤 단추가 모여서 작아집니다
최악의 경우 그림을 그릴 때 메모리를 자꾸 먹으면 다운된다.
따라서 iOS 11에서 버튼을 도구 모음에 균등한 너비로 깔 때 화면 너비의 36px를 고려해야 한다.
일정한 제한이 있기 때문에 toolbar에서subviews를 찾다가 StackView를 발견하고 constraint를 하면 16px가 0px가 되어 회피할 수 있지만 비공개 반이기 때문에 너무 아슬아슬한 일은 하지 않는 것이 좋다고 생각합니다.
왜 붕괴의 2
그 1은 붕괴가 막 나으려고 하는 순간 또 오차가 생겼다는 뜻이다.
도구 모음을 표시할 때마다(도구 모음 단추를 깔지 않은 화면과 표시하지 않은 화면)의 가장자리가 변한다.
나는 이것이 왜 조사를 진행했는지 생각한다.
디스플레이의 붕괴를 일으키는 부분은 화면의 왼쪽과 오른쪽에 단추가 있고 중간에 공백이 있는 구조이다
이를 위해 비즈니스에서 사용하는 애플리케이션은 투명한 커스텀 뷰를 위에 부착하는 UIBAR Buton Item으로 그 기간을 채우는 방법을 사용했습니다.
이런 느낌
결론적으로 이것은 좋지 않다.
UIButton BarStackView 설정
비공개 적 이지만 전라 하였다
설정이지만.
axis: horizontal
alignment: center
distribution: fill
예, 그렇습니다.
그중에 디스패치 정보가 중요해요.
http://qiita.com/yucovin/items/ff58fcbd60ca81de77cb
StackView의 distribution과 fill이 어떤 상태인지 말씀드리자면요.
StackView 내의 View를 꽉 찬 StackView로 확대하여 표시하는 설정입니다.
StackView와 경쟁 우위 확보
따라서 고정된 너비의 View를 항상 toolbar에 놓으면 (또는 이렇게 할 수밖에 없다)
StackView를 늘리려는 구속과 충돌하면 디스플레이가 충돌합니다.보기만 해도 일어나지 않아도 View Hierrarchy를 보면 편안해!마크의 경고가 나왔을 수도 있어.
어떻게 해결합니까
UIBARButon Item 사용(barButon System:.flexble Space, ~)
도구막대에 부드러운 공백을 두기 위해 사용하는 물건입니다(좋은 설명이 떠오르지 않습니다)
그러고 보니 그렇긴 한데 고정폭이 좋지 않으면
가변 너비로 채워주세요!그러게 말이야.
예를 들어 두 개의 setToolbar의 넓이가 도구막대의 넓이를 완전히 채울 수 없는 경우: [button,button]
화면의 양쪽에 버튼이 설정됩니다.
경고가 표시되지 않습니다.
다음 도구막대의 화면 폭을 채우지 않는 세 개의 단추 setToolbar일 때: [button, button, button]
구성은 다음 그림과 같습니다.
StackView의 구성이 매우 나쁘기 때문입니다.
이 단추를 왼쪽 2개, 오른쪽 1개로 설정한 경우, 간격에 고정값이 투명한view를 놓으면 경고 표시가 붕괴됩니다
setTool barItmes
이렇게 된 느낌이 경고 없이 드러났다.
공간을 제대로 여는 방법인 것 같아요.
이게 끝이 아니에요.
경고도 사라졌고 표식도 사라졌으니 다행이다.
화면 전환 전view controller의navigationbar와 setToolbar 등 애니메이션과 관련된 시기에 setToolbar에서 이런 일이 발생할 수 있다(혹시 다른 것도 발생할 수 있다)
버튼의 개수가 바뀌면 autolayout의 조정 실행 시 애니메이션이 눈앞에 나타납니다.
그래서 setTool BarItem 이후의 상황에 따라...
viewController.navigationController.toolBar.layoutIfNeeded()
AutoLayout에 빨리 반응하는 게 좋을 것 같아요.
후기
워낙 시행이 잘 안 됐다는 의혹이 있었지만, 푹 빠지는 것 같아 Qita에 남게 됐다.
논단에서 많이 알려진 것 같은데 같은 곳에서 빠진 사람도 있을 거예요
https://forums.developer.apple.com/thread/80075
iOS 11이 끝난 줄 알았는데 다음은 아이폰X 대응이죠
아무튼 곧 있을 LINE DEVELOPER DAY를 즐겨보고 싶습니다.
그럼 그럼... 단락이 더 있다면.
Reference
이 문제에 관하여(iOS 11 도구 모음 AutoLayout 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HirotoshiKawauchi/items/ebd07e1b60f13f5fade9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
경고도 사라졌고 표식도 사라졌으니 다행이다.
화면 전환 전view controller의navigationbar와 setToolbar 등 애니메이션과 관련된 시기에 setToolbar에서 이런 일이 발생할 수 있다(혹시 다른 것도 발생할 수 있다)
버튼의 개수가 바뀌면 autolayout의 조정 실행 시 애니메이션이 눈앞에 나타납니다.
그래서 setTool BarItem 이후의 상황에 따라...
viewController.navigationController.toolBar.layoutIfNeeded()
AutoLayout에 빨리 반응하는 게 좋을 것 같아요.
후기
워낙 시행이 잘 안 됐다는 의혹이 있었지만, 푹 빠지는 것 같아 Qita에 남게 됐다.
논단에서 많이 알려진 것 같은데 같은 곳에서 빠진 사람도 있을 거예요
https://forums.developer.apple.com/thread/80075
iOS 11이 끝난 줄 알았는데 다음은 아이폰X 대응이죠
아무튼 곧 있을 LINE DEVELOPER DAY를 즐겨보고 싶습니다.
그럼 그럼... 단락이 더 있다면.
Reference
이 문제에 관하여(iOS 11 도구 모음 AutoLayout 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HirotoshiKawauchi/items/ebd07e1b60f13f5fade9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(iOS 11 도구 모음 AutoLayout 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HirotoshiKawauchi/items/ebd07e1b60f13f5fade9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)