EdgesForExtendedLayout : 왜 기본값 인 All이며 앱 전체에서 변경할 수 있습니까?
EdgesForExtendedLayout을 발견하여 몇 가지 성가신 레이아웃 문제를 극복했습니다. 기본적으로 All로 설정되어 있습니다 (완전히 Apple의 결정 - 알겠습니다). nav 및 tabbar 컨트롤러의 하위 뷰가 잘리는 것을 의미합니다. 이것은 분명히 나에게 상당히 미친듯한 기본처럼 보입니다. 확실히 성공의 구덩이에 빠지게하지 않습니다.
모든 레이아웃 문제를 해결하는 방법을 발견 한 후 응용 프로그램의 기본 값을 설정하는 간단한 방법이 있는지 궁금합니다. 외관 API와 같은 것? 모든 컨트롤러를 서브 클래스로 구현할 수 있다는 것을 알았지 만 번거롭기 때문에 표준 컨트롤러 클래스보다는 컨트롤러 클래스를 서브 클래스로 기억해야합니다.
iOS 7의 상태 표시 줄 아래에보기가 표시되며 EdgesForExtendedLayout이 도움이되지 않습니다.
내보기가 상태 표시 줄 아래에 표시되는 데 문제가 있습니다.
검색 후 "this. EdgesForExtendedLayout = UIRectEdge. None;"을 추가해야한다는 것을 알았습니다. ViewController의 ViewDidLoad ()에 연결했지만 나에게 적합하지 않습니다.
참조로 xamarin (docs. xamarin / samples / Hello_iPad)의 hello_iPad 예제를 사용했습니다.
IB의 화면 상단에 레이블을 추가했습니다.
iOS6에서는 올바르게 표시됩니다.
이제 "this. EdgesForExtendedLayout = UIRectEdge. None;"줄을 추가했습니다. iOS7 시뮬레이터에서 실행하면 레이블이 상태 표시 줄에 표시됩니다.
내가 도대체 뭘 잘못하고있는 겁니까?
이 코드를 사용해보십시오.
나는 비슷한 문제가있다.
iOS의 버전을 확인하고 버전이 7이면 변수 "EdgesForExtendedLayout = UIRectEdge. None;을 설정하고 있습니다."
base. ViewDidLoad () 후 viewDidLoad () 메서드에서 창 루트보기 컨트롤러에 대해이 변수를 설정합니다.
하지만 여전히 상태 표시 줄 아래에보기가 나타납니다.
Xamarin (4.0412 (빌드 3))을 사용하고 있습니다.
Apple 개발자 도구 Xcode 5.0 (3332.25),
Xamarin. iOS 버전 : 7.0.1.4 (Business Edition),
모노 3.2.3 ((no / 8d3b4b7),
운영 체제 Mac OS X 10.8.5.
그것은 나에게도 효과가 없었습니다.
결국 iOS 7 용으로 디자인하고 iOS 6 용 인터페이스 빌더에서 델타를 설정하여이 문제를 해결했습니다.
EdgesForExtendedLayout 설정을 viewwillappear 메서드에 넣으려고 생각하는 것이 있다고 생각합니다.
당신은 그것을 시도하고 그것이 효과가 있는지 볼 수 있습니다.
먼저 답장을 보내 주셔서 감사합니다.
AndrewReed 뷰포트에 EdgesForExtendedLayout 설정을 넣으려고했지만 행운이 없습니다.
YvoNelemans 나는 당신의 힌트를 시도 할 것이고, 이것이 도움이되는지 아닌지, 쓸 것이다.
이 솔루션의 번역을 통해이 작업을 수행 할 수있었습니다.
이것을 ViewWillAppear (boolean)에 넣습니다.
MatGiaimo의 코드가 한 번만 실행되는지 확인하십시오. 다시보기로 돌아 가면 다시 실행하면 안됩니다. 그렇지 않으면보기가 아래쪽으로 이동합니다.
HugoLogmans 문제가 발생하여 잠시 후 다시 반복적으로 작업을하지 않도록 간단한 bool 플래그로 끝내고 탭에서 컨트롤러간에 앞뒤로 전환 할 때 발생할 수 있습니다.
프로그래밍 방식으로 모든 레이아웃을 수행 한 프로젝트에서 UIViewController에서이 코드를 작성했습니다. 또한 iOS 제공 TopLayoutGuide를 사용하여 값을 하드 코딩하지 않습니다. (참고 : 프레임 대신 중심을 조정하면 이동 된 뷰가 다시 그릴 필요가 없음을 의미합니다.)
(또한 통합 API를 사용하지 않는 경우 PointPoint 용 CGPoint를 변경하십시오.)
HugoLogmans 문제가 발생하여 잠시 후 다시 반복적으로 작업을하지 않도록 간단한 bool 플래그로 끝내고 탭에서 컨트롤러간에 앞뒤로 전환 할 때 발생할 수 있습니다.
프로그래밍 방식으로 모든 레이아웃을 수행 한 프로젝트에서 UIViewController에서이 코드를 작성했습니다. 또한 iOS 제공 TopLayoutGuide를 사용하여 값을 하드 코딩하지 않습니다. (참고 : 프레임 대신 중심을 조정하면 이동 된 뷰가 다시 그릴 필요가 없음을 의미합니다.)
(또한 통합 API를 사용하지 않는 경우 PointPoint 용 CGPoint를 변경하십시오.)
당신의 솔루션은 뷰를 statusBar 아래에 놓았지만 뷰의 맨 아래 부분은 보이지 않게 이동했습니다. statusBar를 오버랩시키지 않고 뷰를 모두 한 번에 볼 수있게 제한 할 수있는 방법에 대한 단서.
사마린.
UIKit. UIViewController. EdgesForExtendedLayout 속성입니다.
[가져 오기 : ObjCRuntime. Introduced (ObjCRuntime. PlatformName. iOS, 7, 0, ObjCRuntime. PlatformArchitecture. None, null)]
[세트 : ObjCRuntime. Introduced (ObjCRuntime. PlatformName. iOS, 7, 0, ObjCRuntime. PlatformArchitecture. None, null)]
공개 가상 UIRectEdge EdgesForExtendedLayout.
비고.
iOS 7 이전에는 UIViewController. View가 상태 표시 줄, 탐색 모음 또는 도구 모음과 같은 부모 요소를 시각적으로 강조하지 않았습니다. iOS 7에서는 일반적으로해야합니다.
UIViewController. EdgesForExtendedLayout은 UIViewController. ParentViewController에이 UIViewController의 가장자리를 언더 랩에 확장하는 방법을 지정합니다. UIRectEdge. All의 기본값은 모든 에지를 언더 랩 (underlap)으로 확장해야한다는 것을 지정하는 반면, UIRectEdge. None은 iOS 6 이하와 비슷한 범위를 지정합니다.
다음 그림은 그 차이를 보여줍니다. UIKit. EdgesForExtendedLayout이 UIRectEdge. All로 설정된 경우 기본 UIView의 직사각형이 밑줄을 긋지 만 UIKit. EdgesForExtendedLayout이 UIRectEdge. None으로 설정된 경우 드로잉 사각형은 내부로 제한됩니다.
요구 사항.
어셈블리 : Xamarin. iOS (Xamarin. iOS. dll)
어셈블리 버전 : 0.0.0.0.
UIKit 네임 스페이스.
구조체.
인터페이스.
열거 형.
제품 Xamarin for Visual Studio Xamarin 테스트 클라우드 Xamarin 인사이트 Xamarin University Xamarin Studio Visual Studio Xamarin. Forms 사전 빌드 된 응용 프로그램 Mono Licensing Company 회사 소개 고객 파트너 블로그 채용 정보 보도 자료 가격 개발자 센터 시작 가이드 요리법 Xamarin. iOS API Xamarin. Android API Xamarin. Mac API 포럼 동영상 Connect 개발자 지원 리소스 컨설팅 서비스 영업팀에 문의하기 Facebook Twitter YouTube.
Xamarin Inc. 는 별도의 법인으로 행동하는 전액 출자 된 Microsoft 자회사로서 Microsoft 개인 정보 보호 정책을 준수합니다. 쿠키.
Xamarin 및 iOS - iOS 7 및 Xcode 5로 이전.
애플은 스토어에 제출 된 모든 앱이 XCode5와 iOS7을 기반으로 만들어 져야한다고 밝혔다.
그리고 그것은 & # 8230;
그래서 저는 플랫폼에 대한 Xamarin iPhone 프로젝트를 구축하기 시작했습니다. 이제 iOS 7로 옮겨 가면서 많은 재 설계가 이루어졌지만 처음에는 꽤 평평한 디자인으로 진행되었다는 사실을 알려 드리기 위해 첫 번째 호출 포트가 곧바로 마이 그 레이션됩니다. iOS 7 앱. 그렇게하면 더 많은 iOS 7 기능을 활용하는 데 시간을 할애 할 수 있습니다.
전환은 놀라 울 정도로 부드러 웠고 몇 가지 문제 만있었습니다 (지금까지).
1. 탐색 표시 줄 뒤에 사라지는 콘텐츠.
나는 몇몇 장소에서 내 견해의 내용이 네비게이션 바 밑으로 밀려나는 것을 발견했다. iOS 7에서는보기 컨트롤러가 전체 화면 레이아웃을 사용하기 때문입니다. 필자의 경우, 상황을 다르게 처리하기 위해이 시점에서 UI를 다시 디자인하지 않아서 UIViewControllers의 ViewDidLoad에서 EdgesForExtendedLayout의 값을 None으로 설정했습니다.
Apple iOS 7 UI 전환 안내서에는 더 많은 정보가 있습니다.
2. 버튼 레이블이 줄임표 (& # 8230;)로 잘립니다.
이제 버튼이 너무 멋지므로 크롬이나 테두리가 더 이상 필요하지 않습니다. 버튼 레이블에서 일부 텍스트 트리밍이 발생하는 것으로 나타났습니다. 이렇게 :
이마를 많이 때리고 난 그 원인이 내가 UILabel. Appearance. Font 속성을 AppDelegate에 설정했다는 것을 발견했습니다. & nbsp; FinishedLaunching. 이 글로벌 변경은 iOS 7이 C & # 8230; cel이 취소보다 훨씬 좋게 보였다고 생각하는 데 충분했습니다. 그것과 비올라를 없애라, iOS 7은 다시 완전히 제어 할 수 있기 때문에 행복하다. 😉
3. UISwitch 사용자 정의 배경 이미지가 사라졌습니다!
UISwitch 용으로 만든 예쁜 사용자 정의 배경은 더 이상 작동하지 않습니다. 그러나 실제로는 UISwitch의 BackgroundColor가 UIColor로 설정되어있는 경우 눈치 채지 못했습니다. 멋진 & # 8221; Googely Eye & # 8221; 버튼을 토글 할 때 적용됩니다.
켜져 있습니까? 꺼져 있습니까? & # 8230; 누가 말할 수 있니? 어쨌든 iOS로 활약하고 쇼를 운영 할 시간 인 것 같습니다. 그러니 당신의 UIColor를 제거하십시오. 깨끗합니다!
나는 iOS 7에 기본 포트를 추가 할 때 내가 가지고있는 문제에 대해 더 많이 알려줄 것입니다. 그때까지 다른 사람들이 공유하고 싶은 다른 전쟁 이야기가 있습니까?
Kym Phillpotts.
Xamarin, iBeacons 및 Geofencing & # 8211; 일부 자료.
특정 문제에 대한 Xamarin 및 Android 관련 솔루션 # 2.
Xamarin 및 Resource. Designer. cs.
Xamarin Link Roundup & # 8211; 2014 년 8 월 24 일
평소처럼 Xamarin / Mobile 관련 링크의 또 다른 링크 집계가 지난 주 정도 동안 수집되었습니다. 목록에 있어야 할 멋진 것을 본 적이 있다면 잊어 버리시 지 말고, 저에게 의견을 말하거나 저를 트윗하십시오. 뉴스, 웹 세미나, 포드 캐스트 및 프리젠 테이션 F.
2 개의 댓글.
어쨌든 .. 나는 EdgesForExtendedLayout에 대해 알지 못했다. 그러나 나는 그것을 시험해 볼 것이다.
내 블로그 & # 8220; iOS 7 용 앱 조정 & # 8221;을 확인하십시오. 인터페이스 작성기에서 iOS 6/7 델타를 탐색하고 Xamarin의 iOS 버전을 기반으로 프로그래밍 방식으로 작업을 수행합니다.
안녕하세요, 마이크, 블로그를 공유해 주셔서 감사합니다. 나는 그것을 검사 할 것이다.
나는 UIDevice. CurrentDevice. SystemVersion 속성을 쿼리하고 메이저 넘버를 얻기 위해 & # 8230;을 생성하여 Xamarin에서 iOS 버전 번호를 얻는 것을 언급 한 블로그 게시물의 하단을 확인합니다.
UIDevice. CurrentDevice. CheckSystemVersion (7,0)을 호출하여이 작업을 수행 할 수도 있다고 생각합니다. 버전이 7.0 이상이면 true를 반환합니다. 여기를 확인하십시오 : blog. xamarin / ios-6-7-compatibility-tips /
EdgesForExtendedLayout을 설정하기 전에 버전 번호를 확인해야하기 때문에이 점을 알고 있습니다. 그렇지 않으면 iOS6에서 폭파 할 것이므로 기본적으로 다음과 같이합니다.
if (UIDevice. CurrentDevice. CheckSystemVersion (7, 0))
회신을 남겨주 답장을 취소하십시오.
그럼 기술적으로 ...
HockeyApp 및 VSTS - # nothinbutnet.1 게시 빌드 작업 만들기 2016 년 11 월 12 일 slamb2k TeamCity에서 VSTS - 내 개발 작업 - 2 부 2016 년 6 월 6 일 slamb2k Azure 스택에서 파티클링. Cortana, ML, Power BI 및 Azure 함수 ... 2016 년 5 월 31 일 slamb2k DynamoDB 및 Projection Expressions - 왜죠? 2016 년 5 월 25 일 TeamCity에서 VSTS로 - 내 개발 작업 2016 년 5 월 24 일 slamb2k 기술적으로 팟 캐스트 에피소드 1 - // buckleup / 2014 년 4 월 14 일 slamb2k TFSBuild 업그레이드 템플릿을 VNext 소유로 소유 함 2016 년 4 월 2 일 slamb2k 배운 내용 오늘 # 3 - 새로운 가상 네트워크로 이동 Azure 상자 7 월 16, 2015 slamb2k 내가 배운 것들 # 2 - intellisense처럼 다른 일반적으로 사용되는 언어 ... 2015 년 6 월 4 일 Denis Vujicic 내가 배운 것들 # 1 - where. exe 너 내 평생 생에? 2015 년 6 월 1 일 slamb2k.
카테고리.
충적세.
너는 나를 미치게하는 피의 천재 야!
그것은 꽝꽝 많은 덥수룩 한 것입니다!
확장 사이에 "있다고"생각하는 것.
Hrmm은 꽤 아이러니하고 당황 스러울 것입니다.
나는 당신의 기사를 복사하여 Word에 붙여 넣었다.
Comments
Post a Comment