Đây là thứ giúp tôi tiết kiệm hàng giờ và có thể giúp những bạn có kỹ năng Python.
Tôi đã xây dựng một ứng dụng trong hai tháng qua, tập trung vào chỉ iPad lặp lại UX với nhóm.
Hôm nay tập trung vào việc xây dựng phiên bản iPhone, làm theo các bước ở trên (cảm ơn!) Nhưng sau đó tôi không muốn thay đổi kích thước tất cả các yếu tố ui từ kích thước iPad trong trình chỉnh sửa bảng phân cảnh.
Vì vậy, tôi đã viết kịch bản jig python nhỏ này để quét qua tập tin bảng phân cảnh cho x, y, chiều rộng, chiều cao và thu nhỏ mọi thứ theo tỷ lệ 320./768. Cho phép tôi sau đó chỉ tập trung vào điều chỉnh tốt.
Sao chép bảng phân cảnh iPad của bạn vào một tệp mới. (ví dụ: iPhoneStoryboard.storyboard)
Chạy đoạn script bên dưới với tên tệp bảng phân cảnh được sao chép làm tham số đầu tiên.
Sẽ tạo tệp đầu ra với hậu tố _adjusted.storyboard (ví dụ: iPhoneStoryboard.storyboard_adjusted.storyboard)
Hy vọng nó giúp...
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()