Ось щось, що заощадило мені години і може допомогти вам із навичками Python.
Останні два місяці я будував додаток, зосереджений на тому, щоб iPad ітераціював UX з командою.
Сьогодні зосередився на розробці версії iPhone, дотримуючись наведених вище кроків (спасибі!), Але мені не хотілося потім змінювати розмір усіх елементів інтерфейсу з розмірами iPad у візуальному редакторі.
Тому я написав цей маленький сценарій джигу python, щоб просканувати файл розкадровки на х, у, ширину, висоту та масштабувати все за співвідношенням 320./768. Тоді я дозволив мені зосередитися на тонких корекціях.
Скопіюйте розкладку iPad у новий файл. (наприклад, iPhoneStoryboard.storyboard)
Запустіть скрипт внизу, скопіювавши ім'я файлу розкадрування в якості першого параметра.
Згенерує вихідний файл із суфіксом _adjusted.storyboard (наприклад, iPhoneStoryboard.storyboard_adjusted.storyboard)
Сподіваюся, це допомагає ...
import re
import sys
import math
afile = sys.argv[1]
scale = 320./768.
number_pattern = '[-0-9]+(.[0-9]+)?'
#width_pattern = 'width="[-0-9]+( ?px)?"'
width_pattern = 'width="[-0-9]+(.[0-9]+)?( ?px)?"'
height_pattern = 'height="[-0-9]+(.[0-9]+)?( ?px)?"'
x_pattern = 'x="[-0-9]+(.[0-9]+)?( ?px)?"'
y_pattern = 'y="[-0-9]+(.[0-9]+)?( ?px)?"'
def replacescaledvalue(scale,pattern,sometext,replacefmt) :
ip = re.search(pattern, sometext, re.IGNORECASE)
if(ip) :
np = re.search(number_pattern,ip.group(0))
if(np) :
val = float(np.group(0))
val = int(math.floor(val*scale))
sval = replacefmt+str(val)+'"'#+'px"'
newtext = re.sub(pattern,sval,sometext)
return newtext
else :
return sometext
fin = open(afile)
fout = open(afile+"_adjusted.storyboard", "wt")
for line in fin:
newline = line
newline = replacescaledvalue(scale,width_pattern,newline,'width="')
newline = replacescaledvalue(scale,height_pattern,newline, 'height="')
newline = replacescaledvalue(scale,x_pattern,newline, 'x="')
newline = replacescaledvalue(scale,y_pattern,newline, 'y="')
# print newline
fout.write( newline )
fin.close()
fout.close()