سؤال

كيف يمكنك أن تفعل ذلك؟ رأيت برنامجًا تعليميًا واحدًا على ذلك ، لكن الشاشة كانت صغيرة جدًا. أيضًا ، بخلاف تغيير حجم العرض ، هل هناك أي تغييرات رئيسية أخرى يجب أن أجريها على تطبيقات iPhone الخاصة بي لتحويلها إلى iPad؟

هل كانت مفيدة؟

المحلول

افترض أنك SDK مع Xcode 3,

  1. افتح IB.
  2. افتح XIB.
  3. ملف -> إنشاء إصدار iPad باستخدام أقنعة التلقائي.

نصائح أخرى

تمكنت من تضييقها إلى بعض الأشياء ، لذا فإليك الخطوات التي نجحت بالنسبة لي:

1) قم بعمل نسخة من ملف iPhone XIB وأضفه إلى مشروعك

2) انقر بزر الماوس الأيمن فوق الملف (في Xcode) وافتح ككود المصدر

3) يجب أن يبدو الخط الثاني:

<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">

استبدل ب:

<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">

4) ابحث عن "ibcocoatouchframework" واستبدل جميع الأحداث بـ "ibipadframework"

5) احفظ الملف وافتح كـ> Builder - iOS

قد لا يزال الملف يشبه جهاز iPhone XIB العادي ، لكن بالنسبة لي ، بمجرد تغيير شريط الحالة إلى "أسود" في مفتش السمات بقية XIB مجرد نوع من "التقاط" إلى جهاز iPad XIB

في Xcode 5 يجب عليك فقط:

يجد:

<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">

استبدل ب:

<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">

لاحظ أننا نضيف فقط .اى باد إلى type و targetRuntime ملكيات.

بعد الفتح فقط حدد حجمًا جديدًا لضبطه. مثال: iPad ملء الشاشة.

xcode4:

في Xcode 4 ، لا يمكننا القيام بذلك من أجل XIB واحد ، ولكن يمكننا إنشاء إصدارات iPad ذات الصلة مرة واحدة.

قبل تكوين مشروعك إلى iPad ، عندما يتم تكوينه فقط لأجهزة iPhone ، انقر بزر الماوس الأيمن على الهدف وانقر فوق Duplicate.

الآن حدد "مكررة والانتقال إلى iPad". يتم إنشاء هدف جديد ويتم إنشاء مجموعة جديدة من XIBs. يجب أن يقلل بعض الأعمال.

أتمنى أن يساعد ذلك.

xcode 4:

ال قم بإنشاء إصدار iPad باستخدام أقنعة الحجم التلقائي تمت إزالة الميزة من Xcode 4. في الوقت الحالي ، تتمثل أسهل طريقة في استخدام Xcode 3 للتحويل ، نظرًا لأن تنسيق ملف NIB (xib) لم يتغير.

يمكن الآن تثبيت Xcode 3 و 4 على كلاهما على نفس النظام عن طريق تحديد مجلد مختلف (انظر تعليمات التثبيت على صورة القرص).

وإلا ستحتاج إلى نسخ/لصق عناصر واجهة المستخدم من إصدار iPhone ، وإعادة ربطها إلى الكود الخاص بك.

ماذا عن ترك الكمبيوتر يقوم بعمل الكمبيوتر؟
أسرع ، مخاطر أقل من الأخطاء.

هنا سير عمل يعتمد على إجابة ممتازة من JAG, ، ولكن الآلية مع SED.

أولاً ، دعنا ننشئ بعض الأشياء. سنحتاج فقط إلى القيام بذلك مرة واحدة.
في الدليل الذي يحتوي على XIBs ، قم بإنشاء ملفين مع المحتوى التالي:

ملف iPhoneToiPadXIBConversion.sed:

s/com.apple.InterfaceBuilder3.CocoaTouch.XIB/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g
s/IBCocoaTouchFramework/IBIPadFramework/g

وملف iPadToiPhoneXIBConversion.sed:

s/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/com.apple.InterfaceBuilder3.CocoaTouch.XIB/g
s/IBIPadFramework/IBCocoaTouchFramework/g


انتهى الإعداد الآن. لتحويل XIB ، أدخل أحد الأوامر التالية في المحطة:

تحويل iPhone إلى iPad:

sed -f iPhoneToiPadXIBConversion.sed  MyViewController~iphone.xib  > MyViewController.xib

iPad إلى تحويل iPhone:

sed -f iPadToiPhoneXIBConversion.sed  MyViewController.xib  > MyViewController~iphone.xib





فقط للمتعة ، دعنا ننشئ وظيفة اثنين في ZSH ، لجعل التحويل أكثر بساطة:

function convertiPadXIBToiPhone () {
    newXibName=`echo "$1" | /usr/bin/sed "s/.xib/~iphone.xib/"`
    `/usr/bin/sed -f iPadToiPhoneXIBConversion.sed "$1" > "$newXibName"`
    echo "Did convert $1 to $newXibName."
}

function convertiPhoneXIBToiPad () {
    newXibName=`echo "$1" | /usr/bin/sed "s/~iphone.xib/.xib/"`
    `/usr/bin/sed -f iPhoneToiPadXIBConversion.sed "$1" > "$newXibName"`
    echo "Did convert $1 to $newXibName."
}

بعد إضافة هذا إلى تكوين ZSH الخاص بك ، يعد تحويل XIB أمرًا بسيطًا:

convertiPadXIBToiPhone MyViewController.xib

أو

convertiPhoneXIBToiPad MyViewController.xib

افتح XIB في Xcode 4 باستخدام "عرض ككود مصدر."

قبل

احتياطي النقيض المعني.

واحد

استبدل هذا goo

    <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
        <integer value="1056" key="NS.object.0"/>
    </object>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
        <integer value="3100" key="NS.object.0"/>
    </object>
    <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
    <int key="IBDocument.defaultPropertyAccessControl">3</int>
    <string key="IBCocoaTouchPluginVersion">301</string>

لهذا الغو الآخر

    <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
        <integer value="3100" key="NS.object.0"/>
    </object>
    <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
    <int key="IBDocument.defaultPropertyAccessControl">3</int>
    <string key="IBCocoaTouchPluginVersion">301</string>

اثنين

ثم ، لكل عرض في NIB باستخدام IB المتكامل ، قم بحذفه ثم اضغط على التراجع.

ثلاثة

ثم استحم في الماء الساخن لمسح هذا الشعور المثير للاشمئزاز.

يمكنك فتح XIB كـ Textfile وتغيير حجم UIVIEW:

انقر بزر الماوس الأيمن على ملف XIB الخاص بك في De Navigator وحدد: "OPEN AS ..." افتح كملف مصدر.

ابحث عن مرجع UIVIEW وقم بتغيير قيم الإطار:

<object class="IBUIView" id="191373211">

<string key="NSFrame">{{0, 20}, {768, 1024}}</string>

في Xcode 4.3.2 ، فإن أسهل طريقة بالنسبة لي لإنشاء إصدار iPad من XIB هي تكرار ملف XIB هذا ويضيف ~ipad لاحقة إلى اسم الملف. وأضف كل من "myvc.xib" و "myvc ~ ipad.xib" إلى مشروعك. لاحظ أنه "~ iPad" وليس "~ iPad". سيستخدم تطبيقك هذا الإصدار ~ iPad تلقائيًا عند تشغيله على iPad. هذا يعمل أيضًا مع ملفات الموارد (مثل الصور).

أفضل مرجع يمكن أن أجده في الوقت الحالي ...https://developer.apple.com/library/ios/#documentation/cocoa/conceptual/loadingResources/ImagesoundResources/ImagesoundResources.html

Xcode 5 تحديث

TargetRuntime = "iOS.Cocoatouch"

ل

TargetRuntime = "ios.cocoatouch.ipad"

سأقوم بتوثيق ما فعلته في Xcode 4.5:

  1. fixpattern.sh

    cp REPLACEME_Iphone.h REPLACEME_Ipad.h
    sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.h > REPLACEME_Ipad_tmp.h
    mv REPLACEME_Ipad_tmp.h REPLACEME_Ipad.h
    cp REPLACEME_Iphone.m REPLACEME_Ipad.m
    sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.m > REPLACEME_Ipad_tmp.m
    mv REPLACEME_Ipad_tmp.m REPLACEME_Ipad.m
    cp REPLACEME_Iphone.xib REPLACEME_Ipad.xib
    sed -e 's/com.apple.InterfaceBuilder3.CocoaTouch.XIB   /com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
    mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
    sed -e 's/IBCocoaTouchFramework/IBIPadFramework/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
    mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
    sed -e 's/320, 416/768, 1004/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
    mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
    sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
    mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
    
  2. قم بإنشاء قائمة بالملف الذي تريد تحويله fixfile, ، سيكون كل سطر اسم ملف بدون امتداد. إذا كنت اسم الملف الأصلي هو AAA_Iphone.h, ، فقط ضع AAA. إذا لم يكن ملفك الأصلي من هذا النمط ، فأنت بحاجة إلى مراجعة البرنامج النصي.

  3. تشغيل في سطر الأوامر

    cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh
    
  4. مراجعة وتشغيل fixall.sh

  5. إضافة ملف تم إنشاؤه حديثًا إلى المشروع

إجابة Jag رائعة. ولكن هناك صيد إذا تم فتح XIB/ تم إنشاؤه في XCODE 5.

ل XCODE 5

1) قم بعمل نسخة من ملف iPhone XIB وأضفه إلى مشروعك

2) انقر بزر الماوس الأيمن فوق الملف (في Xcode) وافتح ككود المصدر

3) يجب أن يبدو الخط الثاني:

<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510"

تغييره إلى

<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510"

4) يجب أن يبدو الخط الثامن هكذا:

<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>

تغييره إلى

<rect key="frame" x="0.0" y="64" width="768" height="960"/>

هذا كل شيء وهناك لديك iPad XIB. ولكن لا يزال الائتمان الحقيقي يذهب إلى JAG.

بالإضافة إلى الإجابة المقدمة من JAG ، ابحث أيضًا عن "320،460" واستبدلها بـ 768،1024 وسيتم تغيير حجم XIB إلى أبعاد iPad.

لـ Xcode 4 ،

لا تحتاج إلى إنشاء هدف منفصل لكل جهاز. بدلاً من ذلك ، يمكنك تغيير الأجهزة في ملخص المشروع إلى Universal والتي ستكون في iPhone بالفعل. يتم الرد على هذا في تطبيق IOS 5 Upendation على Universal على Xcode 4.2. وبالتالي ، سوف تنقل لك.

يبدو أن أفضل الحلول هو التطور دائمًا كـ iPhone أولاً ، ثم بمجرد الانتهاء من الانتهاء ، أضف هدف iPad ، والسماح لـ Xcode القيام بالتحديث. لقد ارتكبت نفس الخطأ ، الذي تم اختياره في Universal للبدء ، والذي ينشئ الملفات القليلة الأولى ، ولكن بعد ذلك كان يجب إعادة إنشاء كل XIB الأخرى في مجلد iPad. ألم كبير

Jag has given Great Answer.

في بعض الحالات.

لا حاجة لتحويل جهاز iPhone XIB في iPad XIB. يمكنك استخدام التلقائيات التلقائية وجعل تشغيل iPad أيضًا. فقط بحاجة إلى تكوين التطبيق الخاص بك لتشغيله في الوضع العالمي باستخدام AutoresizationSk المناسب.

فقط استبدل

<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch"

مع

<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch.iPad"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top