2016-12-20 2 views
1

В моем приложении Xamrin.Forms я использовал этот метод для получения разрешения экрана: я написал интерфейс с высотой и шириной, а в iOS rendere я использовал UIScreen.MainScreen.Bounds. Высота и UIScreen.MainScreen.Bounds.Width. И это было нормально ... примерно месяц назад! Теперь, если я запустил приложение на iPhone 5c (разрешение экрана 1136x640), значения будут равны 568x320, но если я запустил его на iPhone 6 (разрешение объявлено 1334x750), то значения будут одинаковыми, 568x320 whit scale 2!Xamarin Forms Метод iOS для размера экрана изменяется

Кто-нибудь знает, что изменилось?

Благодаря

+1

Возможного дубликат [Плотность экрана в прошивке и универсальная WIndows App] (http://stackoverflow.com/questions/41489532/density-of-screen-in-ios-and-universal-windows-app) –

+0

решение, о котором вы упомянули, является моим оригинальным решением, но в этот момент оно не работает. Лучше, он работает, но я получил те же значения для iPhone 5 и iPhone 6 –

ответ

0

Нет необходимости использовать сервис зависимостей, чтобы получить ширину устройства & высоту.

Лучший способ получить экран ширина & высоту, когда высота экрана или изменение ширины или поворот экрана OnSizeAllocated() уволят, и вы получите новую ширину & высоту

Пример код:

using Xamarin.Forms; 

namespace ABC 
{ 
    public class MyPage : ContentPage 
    { 
     private double _width; 
     private double _height; 

     public MyPage() 
     { 
      Content = new Label { 
       Text = "Welcome to Xamarin.Forms!" 
      }; 
     } 

     protected override void OnSizeAllocated(double width, double height) 
     { 
      base.OnSizeAllocated(width, height); 
      _width = width; 
      _height = height; 
     } 
    } 
} 
+0

Спасибо @JayPatel за ваш ответ, но ваш seggestion не разрешает мою проблему. На iPhone 5C и на iPhone 6 метод OnSizeAllocated возвращает те же значения: 320 x 568 –

Смежные вопросы