यहाँ कुछ ऐसा है जो मुझे घंटों बचाता है और आप पायथन कौशल के साथ उन लोगों की मदद कर सकते हैं।
मैं पिछले दो महीनों से एक ऐप बना रहा हूं, जो सिर्फ iPad पर टीम के साथ UX को पुनरावृत्त करने पर केंद्रित है।
आज iPhone संस्करण बनाने पर ध्यान केंद्रित किया गया है, ऊपर दिए गए चरणों का अनुसरण किया गया है (धन्यवाद!) लेकिन मैं तब दृश्य स्टोरीबोर्ड संपादक में iPad के आयामों से सभी ui तत्वों का आकार बदलना नहीं चाहता था।
इसलिए मैंने 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()