Xamarin.iOSで、使用中のデバイスがRetinaディスプレイなのか、標準解像度(非Retina)なのかを判定することがあります。Objective-Cを使ってデバイスがRetinaディスプレイかどうかの判定する時は、以下のようにUIScreenクラスのscaleプロパティを使用します。
// Retinaディスプレイかどうか判定する + (BOOL) isRetina { BOOL isResponds = [[UIScreen mainScreen] respondsToSelector:@selector(scale)]; if (isResponds && [[UIScreen mainScreen] scale] == 2.0) { return YES; } else { return NO; } }
これをXamarin.iOSを使ってC#で書き換えると以下のようになります。@selector(scale)の書き換えには、new MonoTouch.ObjCRuntime.Selector("scale")を使用します。
public static bool IsRetina() { UIScreen screen = UIScreen.MainScreen; var isResponds = screen.RespondsToSelector( new MonoTouch.ObjCRuntime.Selector("scale")); return (isResponds && screen.Scale == 2.0); }