Hier ist etwas, das mir Stunden gespart hat und denen von Ihnen mit Python-Kenntnissen helfen könnte.
Ich habe in den letzten zwei Monaten eine App erstellt, die sich darauf konzentriert, nur das iPad zu verwenden und die UX mit dem Team zu wiederholen.
Heute konzentrierte ich mich auf den Aufbau der iPhone-Version und befolgte die obigen Schritte (danke!), Aber ich wollte dann nicht die Größe aller UI-Elemente aus den iPad-Dimensionen im visuellen Storyboard-Editor ändern müssen.
Also habe ich dieses kleine Python-Jig-Skript geschrieben, um die Storyboard-Datei nach x, y, Breite, Höhe zu durchsuchen und alles um das Verhältnis 320./768 zu verkleinern. Erlaubte mir dann, mich nur auf Feineinstellungen zu konzentrieren.
Kopieren Sie Ihr iPad-Storyboard in eine neue Datei. (zB iPhoneStoryboard.storyboard)
Führen Sie das folgende Skript mit dem kopierten Storyboard-Dateinamen als erstem Parameter aus.
Generiert eine Ausgabedatei mit dem Suffix _adjusted.storyboard (z. B. iPhoneStoryboard.storyboard_adjusted.storyboard).
Ich hoffe es hilft...
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()