2012-10-17 29 views
18

Bu kodda yanlışlık var mı? Kullanıcının kullandığı mevcut cihazın bir iPad olup olmadığını kontrol edebilmek istiyorum ama bana hata veriyor.Aygıtın iPad olup olmadığını kontrol etme

if (UIUserInterfaceIdiom == UIUserInterfaceIdiomPad) 
{ 
    //do stuff 
} 
+0

Muhtemelen sadece ipad daha fazlası ile bu etiketlemek istiyorum. – epascarello

+0

Belki çok geç mi diyorsun? XIB'nizi manuel olarak mı yüklüyorsunuz? Bunu yapmayı ve başarılı olduğumu hatırlıyorum. Ama sanırım daha iyi çözümler var. –

+0

Teşekkürler Bunu yapacağım! –

cevap

37

Sen hızlı kullanıyorsanız cihaz iphone/ipad

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
//do ur ipad logic 
}else 
{ 
//do ur iphone logic 
} 
+6

Bir UIUserInterfaceIdiomPhone değerinin bir iPhone aygıtında olduğunuz anlamına gelmediğini unutmayın; bunun yerine, arabirim deyiminin iPhone ile eşleşmesidir. Bir iPad'de, 1x/2x modunda sadece iPhone uygulaması çalıştırabilirsiniz. – magma

+2

Aslında UI_USER_INTERFACE_IDIOM(). – rmaddy

+0

Haklısınız, teşekkürler – Makleesh

8

Eğer koşul cheack gerekir kullanabilirsiniz, bu

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad) 
    { 
     // device is ipad 
    } 
    else 
    { 
     // device is iPhone 
    } 
kullanmak
3

olduğu wheather

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
3

Swift size kullanabilirsiniz: iOS az 3.2 sürümüne dağıtırken

if UIDevice.current.userInterfaceIdiom == .pad { 
1

/* UI_USER_INTERFACE_IDIOM() fonksiyonu kullanılmak üzere temin edilmektedir. Kullanacağınız iPhone/iOS'un en eski sürümü 3.2 veya üstü ise, doğrudan [UIDevice userInterfaceIdiom] kullanabilirsiniz. */

Daha iyi kullanım UIDevice.current.userInterfaceIdiom süper eski iOS destekleyen sürece.

Olası vakalar aşağıdaki gibidir:

public enum UIUserInterfaceIdiom : Int { 
    case unspecified 

    @available(iOS 3.2, *) 
    case phone // iPhone and iPod touch style UI 

    @available(iOS 3.2, *) 
    case pad // iPad style UI 

    @available(iOS 9.0, *) 
    case tv // Apple TV style UI 

    @available(iOS 9.0, *) 
    case carPlay // CarPlay style UI 
} 
İlgili konular