2015-02-21 3 views
0

Мне интересно, может ли кто-нибудь показать мне, как написать этот код, чтобы он автоматически изменял размеры для разных размеров экрана. У меня есть 4 раскадровки с разными размерами экрана и просто хочу показать код, если эта раскадровка (смена цифр) будет следовать этому коду, иначе (число chafe в соответствии с размером раскадровки) этот код.Изменение размера для раскадровки вопроса swift

Я уже пробовал изменять размер, добавляя к каждому номеру оси, например/568 * size.frame.height после каждой оси y и высоты, а также для x и ширины, но код становится слишком длинным и сложным для чтения.

В идеале я хотел бы, если заявление говоря, если этот размер экрана, то это раскадровка «это», то перейти на этот код ..

pianoButtonsWaterDropFrames = [ 
      cNote: (CGRect(x: 33 , y: 40 , width: 20, height: 35), CGRect(x: 33, y: 360, width: 20, height: 35)), 
      dNote: (CGRect(x: 66 , y: 42 , width: 20, height: 35), CGRect(x: 66, y: 360, width: 20, height: 35)), 
      eNote: (CGRect(x: 99 , y: 41 , width: 20, height: 35), CGRect(x: 99 , y: 360, width: 20, height: 35)), 
      fNote: (CGRect(x: 132, y: 48, width: 20, height: 35), CGRect(x: 132, y: 360, width: 20, height: 35)), 
      gNote: (CGRect(x: 165, y: 39, width: 20, height: 35), CGRect(x: 165, y: 360, width: 20, height: 35)), 
      aNote: (CGRect(x: 198, y: 57, width: 20, height: 35), CGRect(x: 198, y: 360, width: 20, height: 35)), 
      bNote: (CGRect(x: 231, y: 60, width: 20, height: 35), CGRect(x: 231, y: 360, width: 20, height: 35)), 
      cFourNote: (CGRect(x: 263, y: 54, width: 20, height: 35), CGRect(x: 263, y: 360, width: 20, height: 35)) 
     ] 

Любая помощь будет оценен по достоинству!

ответ

1

Вы можете использовать HAS answer in this question, чтобы проверить, в каком iPhone работает ваше приложение. Затем вы можете использовать оператор переключения и вызывать разные методы:

let modelName = UIDevice.currentDevice().modelName 

switch modelName{ 
    case "iPhone 3G", "iPhone 3GS": 
    method1() 
    case "iPhone 4", "iPhone 4S": 
    method2() 
default: 
    println("no size found") 
} 
Смежные вопросы