2016-06-15 5 views
0

, поэтому я хотел бы сделать изображение, которое можно увидеть только на iPhone 6 и 6S в xcode с быстрым или раскадровкой. У вас есть какие-то предложения? :)Как сделать изображение видимым только на iPhone 6/6s

+0

Используя [этот вопрос] (http://stackoverflow.com/questions/11197509/ios- как-получить-устройство-сделать-и-модель), чтобы проверить модель устройства и показать/скрыть соответственно. –

+0

проблема в том, что я очень новый, и я не понимаю цель C –

+0

Существует [Swift version] (http://stackoverflow.com/questions/26028918/ios-how-to-determine-iphone-model-in-swift/26962452 # 26962452) –

ответ

1

Первым шагом является определение, является ли устройство 6 или 6S. Вот Swift код, чтобы сделать это:

import Foundation 
import UIKit 

extension UIApplication 
{ 
    public func isIPhone6or6S() -> Bool 
    { 
     let IPHONE_6 = "iPhone7,2" 
     let IPHONE_6S = "iPhone8,1" 

     var systemInfo = utsname() 
     uname(&systemInfo) 
     let machineMirror = Mirror(reflecting: systemInfo.machine) 
     let identifier = machineMirror.children.reduce("") { identifier, element in 
      guard let value = element.value as? Int8 where value != 0 else { return identifier } 
      return identifier + String(UnicodeScalar(UInt8(value))) 
     } 

     return (identifier == IPHONE_6 || identifier == IPHONE_6S) ? true : false; 
    } 
} 

Затем вы можете использовать его в UIViewController easily хватает, что-то вроде этого:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var phoneOnlyImage: UIImageView! 
    @IBOutlet weak var hiddenStatusLabel: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // hide it if it is not an iPhone 6 or 6S 
     self.phoneOnlyImage.hidden = !(UIApplication.sharedApplication().isIPhone6or6S()) 

     // show the label so you know if it's working 
     self.hiddenStatusLabel.text = (self.phoneOnlyImage.hidden) ? "Image is Hidden" : "Image is visible" 
    } 
} 
+0

Эй, извините, им совсем не нравится это, но не могли бы вы сказать мне, где обратиться к изображению, которое я хочу скрыть? –

+0

Как вы строите свой интерфейс? Это в Раскадке или программно? Если это первый, вы управляете перетаскиванием IBOutlet из раскадровки в UIViewController. –

+0

Я сделал это, но мне было интересно, где должен подключиться мой IBOutlet к коду, который вы мне дали :) –

0

перечисление UIUserInterfaceIdiom: Int { случай Неизвестно случай телефона случай Pad }

struct ScreenSize 
    { 
     static let SCREEN_WIDTH   = UIScreen.mainScreen().bounds.size.width 
     static let SCREEN_HEIGHT  = UIScreen.mainScreen().bounds.size.height 
     static let SCREEN_MAX_LENGTH = max(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT) 
     static let SCREEN_MIN_LENGTH = min(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT) 
    } 

    struct DeviceType 
    { 
    /* static let IS_IPHONE_4_OR_LESS = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH < 568.0 
     static let IS_IPHONE_5   = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 568.0 */ 
     static let IS_IPHONE_6   = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 667.0 

статических пусть IS_IPHONE_6S = UIDevice.currentDevice(). UserInterfaceIdiom == .phone & & ScreenSize.SCREEN_MAX_LENGTH == 736,0

 /* static let IS_IPHONE_6P   = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 736.0 
     static let IS_IPAD    = UIDevice.currentDevice().userInterfaceIdiom == .Pad && ScreenSize.SCREEN_MAX_LENGTH == 1024.0 
     static let IS_IPAD_PRO   = UIDevice.currentDevice().userInterfaceIdiom == .Pad && ScreenSize.SCREEN_MAX_LENGTH == 1366.0 */ 

    } 

    if DeviceType.IS_IPHONE_6 { 
     //Enter Your Code Here 
Смежные вопросы