这里有一些东西可以节省我的时间,并且可能会帮助那些掌握 Python 技能的人。
在过去的两个月里,我一直在构建一个应用程序,专注于 iPad 与团队一起迭代用户体验。
今天专注于构建 iPhone 版本,按照上述步骤(谢谢!),但我不想在可视化故事板编辑器中调整 iPad 尺寸的所有 ui 元素。
所以我编写了这个小的 python jig 脚本来扫描故事板文件中的 x、y、宽度、高度,并按比例 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()