Pergunta

Como você faz isso? Eu vi um tutorial em vídeo, mas a tela era muito pequena. Além disso, além de alterar o tamanho da visualização, existem outras alterações importantes que eu teria que fazer nos aplicativos do meu iPhone para converter para o iPad?

Foi útil?

Solução

Suponha que você tenha o SDK com Xcode 3,

  1. Abra ib.
  2. Abra o xib.
  3. Arquivo -> Crie versão do iPad usando máscaras automáticas.

Outras dicas

Consegui reduzi -lo a algumas coisas, então aqui estão as etapas que funcionaram para mim:

1) Faça uma cópia do arquivo iPhone XIB e adicione -o ao seu projeto

2) Clique com o botão direito do mouse no arquivo (no xcode) e abra como> código -fonte

3) A 2ª linha deve parecer:

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

Substituir com:

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

4) Pesquise por "ibcocoatouchframework" e substitua todas as ocorrências por "ibipadframework"

5) Salve o arquivo e abra como> Builder de interface - iOS

O arquivo ainda pode parecer um iPhone XIB comum, mas para mim, uma vez que eu mudei a barra de status para "Black" no inspetor de atributos, o restante do XIB meio que "tirou" em um iPad XIB

No Xcode 5, você deve apenas:

Achar:

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

Substituir por:

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

Observe que estamos apenas adicionando .IPAD para o type e targetRuntime propriedades.

Depois de abrir, basta selecionar um novo tamanho para ajustar. Exemplo: IPAD Tela cheia.

Xcode4:

No Xcode 4, não podemos fazer isso para um único XIB, mas podemos criar as respectivas versões do iPad de uma só vez.

Antes de configurar seu projeto para o iPad, quando estiver configurado apenas para iPhone, clique com o botão direito do mouse e clique em Duplicate.

Agora selecione "Duplicar e fazer a transição para o iPad". Um novo destino e um novo conjunto de XIBs são criados. Deve reduzir algum trabalho.

Espero que ajude.

Xcode 4:

o Crie versão do iPad usando máscaras automaticamente O recurso foi removido do Xcode 4. No momento, a maneira mais fácil é usar o Xcode 3 para a conversão, pois o formato de arquivo NIB (.xib) não mudou.

O Xcode 3 e 4 agora pode ser instalado no mesmo sistema, simplesmente selecionando uma pasta diferente (consulte as instruções de instalação na imagem do disco).

Caso contrário, você precisará copiar/colar os elementos da interface do usuário da versão do iPhone e re-vinculá-los para o seu código.

Que tal deixar o computador fazer o trabalho do computador?
MAIS RISCO DE ERROS mais rápido e menos rápido.

Aqui está um fluxo de trabalho baseado no Excelente resposta do JAG, mas automatizado com sed.

Primeiro, vamos configurar algumas coisas. Vamos precisar fazer isso apenas uma vez.
No diretório que contém seus xibs, crie dois arquivos com o seguinte conteúdo:

Arquivo iPhoneToiPadXIBConversion.sed:

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

e arquivo iPadToiPhoneXIBConversion.sed:

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


A configuração agora está concluída. Para converter um XIB, insira um dos dois seguintes comandos no terminal:

Conversão para iPhone para iPad:

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

ipad para conversão do iPhone:

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





Apenas para a diversão, vamos criar duas funções no ZSH, para tornar a conversão ainda mais simples:

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."
}

Depois de adicionar isso à sua configuração ZSH, a conversão de um XIB é simples como:

convertiPadXIBToiPhone MyViewController.xib

ou

convertiPhoneXIBToiPad MyViewController.xib

Abra o XIB no Xcode 4 usando "View como código -fonte".

Antes da

Faça backup da ponta em questão.

Um

Substitua esta gosma

    <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>

Para esta outra gosma

    <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>

Dois

Em seguida, para cada visualização na ponta usando o IB integrado, exclua -o e depois bata em desfazer.

Três

Em seguida, tome banho em água quente para limpar a sensação nojenta que você pode ter.

Você pode abrir o XIB como arquivo de texto e alterar o tamanho do UIVIEW:

Clique com o botão direito do mouse no arquivo XIB no De Navigator e selecione: "Abra como ..." Abra como arquivo de origem.

Encontre a referência do UIView e altere os valores do quadro:

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

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

No Xcode 4.3.2, a maneira mais fácil de criar a versão para iPad do XIB é duplicar esse arquivo xib e adicionar ~ipad sufixo para o nome do arquivo. E adicione "myvc.xib" e "myvc ~ ipad.xib" ao seu projeto. Observe que é "~ iPad" não "~ iPad". Seu aplicativo usará essa versão ~ iPad automaticamente quando executado no iPad. Isso também funciona com arquivos de recursos (por exemplo, imagens).

A melhor referência que pude encontrar no momento ...https://developer.apple.com/library/ios/#documentation/cocoa/conceptual/loadingResources/imagesoundresources/imagesoundresources.html

Xcode 5 Atualização

TargetRuntime = "ios.cocoatouch"

para

TargetRuntime = "ios.cocoatouch.ipad"

Vou documentar o que fiz no 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. Crie uma lista de arquivo que você deseja converter em fixfile, cada linha será um nome de arquivo sem extensão. Se seu nome de arquivo original é AAA_Iphone.h, apenas coloque AAA. Se o seu arquivo original não for desse padrão, você precisará revisar o script.

  3. Executar na linha de comando

    cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh
    
  4. Revise e execute fixall.sh

  5. Adicione o arquivo recém -criado ao projeto

A resposta de Jag é ótima. Mas há uma captura se um XIB for aberto/ criado no Xcode 5.

Para Xcode 5

1) Faça uma cópia do arquivo iPhone XIB e adicione -o ao seu projeto

2) Clique com o botão direito do mouse no arquivo (no xcode) e abra como> código -fonte

3) A 2ª linha deve parecer:

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

mude para

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

4) 8ª linha deve ficar assim:

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

mude para

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

É isso e aí você tem ipad xib. Mas ainda assim o crédito real vai para Jag.

Além da resposta dada pelo JAG, procure também "320.460" e substitua -a por 768.1024 e seu XIB será redimensionado para as dimensões do iPad.

Para xcode 4,

Você não precisa criar um destino separado para cada dispositivo. Em vez disso, você pode alterar os dispositivos no resumo do projeto para a Universal, que já estaria no iPhone. Isso é respondido no link Atualizando o aplicativo iOS 5 para o Universal no Xcode 4.2. Assim, fará a transição para você.

Parece que a melhor solução é sempre se desenvolver como iPhone primeiro, depois que você concluir, adicione o alvo do iPad, deixando o Xcode fazer a atualização. Cometi o mesmo erro, selecionado Universal para começar, que cria os primeiros arquivos, mas todos os outros XIB tiveram que ser recriados à mão na pasta do iPad. Grande dor

Jag has given Great Answer.

Em alguns casos.

Não há necessidade de converter seu iPhone XIB no iPad XIB. Você pode usar o AutoRoresizeMask e executar o iPad em execução também. Só é preciso configurar seu aplicativo para executar no modo universal com o AutororesizingMask adequado.

Apenas substitua

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

com

<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch.iPad"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top