এখানে এমন কিছু যা আমাকে ঘন্টা বাঁচিয়েছিল এবং পাইথন দক্ষতায় আপনারা যারা সাহায্য করতে পারে।
আমি গত দুই মাস ধরে একটি অ্যাপ্লিকেশন তৈরি করছি, যা কেবলমাত্র আইপ্যাডকে দলের সাথে ইউএক্স পুনরাবৃত্তি করার দিকে মনোনিবেশ করে।
আজ আইফোন সংস্করণ তৈরির দিকে মনোনিবেশ করেছে, উপরের পদক্ষেপগুলি অনুসরণ করেছে (ধন্যবাদ!) তবে আমি তখন ভিজ্যুয়াল স্টোরিবোর্ড সম্পাদকের আইপিড মাত্রা থেকে সমস্ত ইউআই উপাদানগুলির আকার পরিবর্তন করতে চাইনি।
সুতরাং আমি x, y, প্রস্থ, উচ্চতা এবং স্টোরবোর্ড ফাইলটি স্ক্যান করতে 320./768 অনুপাত দ্বারা সমস্ত স্কোর বোর্ডের জন্য স্ক্যান করতে এই ছোট্ট পাইথন জিগ স্ক্রিপ্ট লিখেছিলাম। আমাকে তখন ঠিক সূক্ষ্ম সমন্বয়গুলিতে ফোকাস করার অনুমতি দেয়।
আপনার আইপ্যাড স্টোরিবোর্ডটি একটি নতুন ফাইলে অনুলিপি করুন। (যেমন আইফোনস্টিরিবোর্ড.স্টোর বোর্ড)
প্রথম প্যারামিটার হিসাবে অনুলিপি করা স্টোরিবোর্ড ফাইলের নাম সহ নীচের স্ক্রিপ্টটি চালান।
প্রত্যয় _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()