Aquí hay algo que me ahorró horas y podría ayudar a aquellos de ustedes con habilidades de Python.
He estado construyendo una aplicación durante los últimos dos meses, enfocada solo en iPad iterando la UX con el equipo.
Hoy se centró en la construcción de la versión para iPhone, seguí los pasos anteriores (¡gracias!), Pero no quería cambiar el tamaño de todos los elementos de la interfaz de usuario de las dimensiones del iPad en el editor visual del guión gráfico.
Así que escribí este pequeño script de Python Jig para escanear a través del archivo del guión gráfico para x, y, ancho, alto y escalar todo en una proporción de 320./768. Entonces me permitió centrarme solo en los ajustes finos.
Copie su storyboard de iPad en un nuevo archivo. (por ejemplo, iPhoneStoryboard.storyboard)
Ejecute el script a continuación con el nombre del archivo del guión gráfico copiado como primer parámetro.
Generará el archivo de salida con el sufijo _adjusted.storyboard (por ejemplo, iPhoneStoryboard.storyboard_adjusted.storyboard)
Espero eso ayude...
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()