Aqui está algo que me salvou horas e pode ajudar aqueles com habilidades em Python.
Desenvolvo um aplicativo nos últimos dois meses, focado apenas no iPad, iterando o UX com a equipe.
Hoje focado na criação da versão para iPhone, segui as etapas acima (obrigado!), Mas eu não queria redimensionar todos os elementos da interface do usuário das dimensões do iPad no editor visual do storyboard.
Então, escrevi este pequeno script python jig para procurar no arquivo do storyboard x, y, largura, altura e dimensionar tudo na proporção 320./768. Permitiu-me, então, me concentrar apenas nos ajustes finos.
Copie o storyboard do iPad em um novo arquivo. (por exemplo, iPhoneStoryboard.storyboard)
Execute o script abaixo com o nome do arquivo copiado do storyboard como o primeiro parâmetro.
Gerará arquivo de saída com o sufixo _adjusted.storyboard (por exemplo, iPhoneStoryboard.storyboard_adjusted.storyboard)
Espero que ajude...
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()