Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- hot reload
- v
- ASP.NET Web API
- Cloudflare
- xcode13
- AWS
- Xamarin
- iOS노치
- aws lambda
- 구글지도
- Xamarin Forms
- 개발
- 지도
- 비주얼스튜디오2022
- 구글맵
- MAUI
- 안드로이드
- 프로그래밍
- .net maui
- 흑우마스터
- vpc
- c#
- SecureStorage
- 망할
- 자마린
- 배포
- ABLY
- n8n
- Android
- 닷넷
Archives
- Today
- Total
흑우마스터의 마법의 공간
Xamarin.Forms iOS에서 SafeArea를 하단에만 주고 싶은 경우 본문

아이폰 노치가 있는 모델이 생기면서 노치 영역에 의도치 않게 디자인한 컨트롤들이 표현 되는 것을 방지하기 위해 아래와 같은 코드를 사용하였다.
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:StampApp.Views"
xmlns:vm="clr-namespace:StampApp.ViewModel"
x:Class="testProject.Page.TestPage"
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
ios:Page.UseSafeArea="true">
ios 부분을 별도로 정의해주고 SafeArea를 주는 부분인데 이걸 하게 되면 첫 이미지와 같이 ContentPage의 배경색이 SafeArea 영역에 표시 되는 것을 알 수 있다.
이렇게 되면 문제는 Scrollviewer 등을 구현 시에 하단 영역에 거슬리는 빈 공간이 발생 된다는 것이다. 이 경우에는 ContentPage에 정의한 것처럼 UseSafeArea를 True로 주어서 처리하면 안된다. 이건 위 아래 둘 다 만들기 때문이다.
protected override void OnAppearing()
{
base.OnAppearing();
if( Device.RuntimePlatform == Device.iOS )
{
var safeInsets = On<Xamarin.Forms.PlatformConfiguration.iOS>().SafeAreaInsets();
safeInsets.Bottom = 0;
this.Padding = safeInsets;
}
}
위와 같이 OnAppearing 을 오버라이드 하여 디바이스가 iOS인 경우에만 하단 영역에 패딩을 주지 않는 것으로 해결할 수 있다.

'프로그래밍 > Xamarin' 카테고리의 다른 글
Android 배포를 위한 보관 시 "디버깅을 사용하도록 설정하여 보관파일이 작성되었습니다" 해결 방법 (0) | 2021.11.02 |
---|---|
Xamarin 개발 중 Android에서 ShellItemRenderer.java 로 인해 오류 발생 해결 방법 (0) | 2021.10.25 |
Xamarin.Forms iOS 배포 시 Authentication failed 처리 (0) | 2021.10.08 |
M1 Mac 환경에서 Xcode 13와 Xamarin iOS 15.0 사용 시 Hot Reload 에러 문제 해결 (0) | 2021.10.01 |
Xamarin Essentials 사용 시 iOS에서 SecureStorage 오류 증상 해결 (0) | 2021.10.01 |