Edgesforextendedlayout ios 8
Obter através da App Store Leia esta publicação em nosso aplicativo!
O que é edgeForExtendedLayout: para?
Dentro de um dos códigos de exemplo da WWDC 14, encontrei a seguinte linha no init: na subclasse de UICollectionViewController:
Quando eu comentei, não mudou nada. Qual foi a razão para colocá-lo lá? Para que é realmente?
'edgeForExtendedLayout' é usado para especificar quais bordas de uma vista devem ser estendidas, independentemente da translucidez da barra.
Pode ser que você esteja usando isso como um controlador de visualização que não está incorporado em nenhum outro controlador de visualização ou é um controlador de vista de raiz. Você pode encaminhá-lo na documentação oficial da Apple aqui.
Problemas de layout automático do guia de layout superior do iOS 8.
Uma das telas no meu aplicativo foi completamente interrompida quando atualizava o SDK do iOS 8. O problema parece ser que o guia de layout superior se desloca em vez de ser uma "âncora" para o resto das visualizações.
Isto é o que a visão parecia no iOS 7:
Isso é o que parece no iOS 8 (capturado pelo depurador de hierarquia do Xcode 6 View):
Como você pode ver, a vista aparece bem acima da barra de navegação. Existem duas restrições no guia de layout superior, uma para a visualização de imagem superior e outra para a exibição branca abaixo. Não há restrições no guia de layout inferior, apenas restrições de altura nas visualizações.
Por algum motivo, o iOS 8 decide empurrar o guia de layout superior depois que [self. view layoutIfNeeded] for chamado pela primeira vez. Além disso, os limites das vistas às vezes parecem muito grandes para o dispositivo (ou seja, aparecendo exatamente como no storyboard unificado (600x600), em vez de 320x480 / 320x568.
O que mudou no iOS 8 que pode danificar o layout?
[EDIT] Aqui está uma lista completa das restrições na visualização:
Também tem um problema como esse. Se estiver executando apenas no iOS8, você pode alterar as restrições de "topLayoutGuide. bottom-myView. top" para "topLayoutGuide. top-myView. top". Mas isso vai acabar com UI para iOS7. É possível escrever uma solução como essa no código para suportar ambas as versões, mas não há chance de tornar a UI funcionando bem para ambas as versões ao criar UI nos storyboards.
Você pode usar UIBarPositionTopAttached ou pode usar limites de exibição e quadros, eu também posso sugerir e ligar você à documentação da Apple que levaria algum tempo para você resolver o problema.
A melhor e a maneira mais fácil de resolver esse problema é apenas incorporar seu controlador de visualização dentro de um controlador de navegação e é isso. Você pode fazê-lo apenas selecionando o controlador de visualização e indo para Editor> Incorporar> Controlador de navegação. (Se houver algum conteúdo na sua barra de navegação antiga, primeiro pode arrastá-lo para baixo, incorporar o controlador de visualização no controlador de navegação e, em seguida, mover os botões da barra na nova barra de navegação e, em seguida, excluir a barra de navegação antiga)
Defina a propriedade translúcida da barra de navegação como NO:
Isto irá consertar a vista de ser enquadrada por baixo da barra de navegação e da barra de status.
Se você precisa mostrar e ocultar a barra de navegação, use.
no seu método viewDoLoad.
Espero que qualquer um desses solucione seu problema.
Em vez de usar o storyboard unificado (600x600), você deve manter uma das resoluções do dispositivo para seu construtor de interface e, em seguida, colocar sua tela no IB.
Se o tamanho do seu controlador de exibição for 600x600 no storyboard, então, no viewDidLoad, ele obterá esse quadro para a visão do seu controlador de exibição e o layout das subunidades em conformidade.
Espero que isto ajude..
Estender os bordos & gt; Em Barras superiores é verificado por padrão na seção Extensões de bordas do inspetor de atributos.
Tente desmarcar sob Barras superiores.
Isso me ajudou muitas vezes quando recebi comportamento estranho como esse.
Observe que é uma propriedade UIViewController, para que você possa configurá-la em código, se desejar.
Estou usando o Xcode 6.3.1 e parece que o bug está de volta naquela versão (supostamente foi corrigido em 5.1). Não consegui encontrar um trabalho em SO, então eu tive que google mais e aqui é:
em vez de fazer o Ctrl + arrasto habitual no IB, basta selecionar a Vista em que deseja fazer isso e ir para o Editor -> Pin -> Espaço superior para supervisionar.
Edgesforextendedlayout ios 8
Obter através da App Store Leia esta publicação em nosso aplicativo!
Explicando a diferença entre automaticAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars, edgesForExtendedLayout no iOS7.
Eu tenho lido muito sobre a transição do IOS7 UI.
Não consigo obter o que estas três propriedades automaticamenteAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars, edgesForExtendedLayout ??
Por exemplo, estou tentando fazer meus controladores de exibição começar abaixo da barra de status, mas não consigo alcançá-lo.
Começando no iOS7, os controladores de exibição usam o layout de tela inteira por padrão. Ao mesmo tempo, você tem mais controle sobre como ele expõe seus pontos de vista, e isso é feito com essas propriedades:
Basicamente, com esta propriedade, você define quais lados da sua visão podem ser estendidos para cobrir toda a tela. Imagine que você empurre um UIViewController para um UINavigationController. Quando a exibição desse controlador de visualização é estabelecida, ele iniciará onde a barra de navegação termina, mas essa propriedade irá definir quais lados da vista (superior, esquerda, inferior, direita) podem ser estendidos para preencher a tela inteira.
Vamos vê-lo com um exemplo:
Aqui você não está configurando o valor de edgesForExtendedLayout, portanto, o valor padrão é tomado (UIRectEdgeAll), então a exibição amplia seu layout para preencher toda a tela.
Este é o resultado:
Como você pode ver, o fundo vermelho se estende por trás da barra de navegação e da barra de status.
Agora, você vai definir esse valor para UIRectEdgeNone, então você está dizendo ao controlador de exibição para não estender a exibição para cobrir a tela:
Essa propriedade é usada quando sua exibição é UIScrollView ou similar, como um UITableView. Você quer que sua mesa comece onde a barra de navegação termina, porque você não verá todo o conteúdo se não, mas ao mesmo tempo você deseja que sua mesa cubra toda a tela quando se desloca. Nesse caso, a definição de bordasForExtendedLayout para Nenhum não funcionará porque sua tabela começará a rolar onde a barra de navegação termina e não vai atrasá-la.
Aqui é onde esta propriedade é útil, se você deixar o controlador de exibição ajustar automaticamente as inserções (configurando esta propriedade para SIM, também o valor padrão), ele irá adicionar inserções no topo da tabela, então a tabela começará onde a navegação A barra termina, mas o pergaminho cobrirá toda a tela.
É quando é definido como NÃO:
E SIM (por padrão):
Em ambos os casos, a tabela se desliza para trás da barra de navegação, mas no segundo caso (SIM), ele irá começar por baixo da barra de navegação.
Esse valor é apenas uma adição aos anteriores. Por padrão, esse parâmetro é definido como NO. Se a barra de status for opaca, as visualizações não serão estendidas para incluir a barra de status, mesmo se você estender sua visão para cobri-la (edgeForExtendedLayout para UIRectEdgeAll).
Se você definir o valor como SIM, isso permitirá que a visão vá novamente debaixo da barra de status.
Se algo não estiver claro, escreva um comentário e vou responder.
Como o iOS sabe o que o UIScrollView usa?
O iOS agarra a primeira sub-visualização na visão do ViewController, a do índice 0, e se é uma subclasse do UIScrollView, então aplica as propriedades explicadas a ela.
Claro, isso significa que o UITableViewController funciona por padrão (uma vez que o UITableView é a primeira visualização).
Não tenho certeza se você está usando storyboards, mas se você for, para fazer seus controladores de exibição começarem abaixo da barra de status (e acima da barra inferior):
Selecione o controlador de visualização no IB, no inspetor de atributos, desmarque 'Extendir bordas - Em barras superiores' e 'Ampliar bordas - em barras inferiores'.
Estou usando storyboards e usando o conselho acima, no entanto, não sabia exatamente como implementá-lo. Abaixo está um pequeno exemplo no modo como ele esclareceu o problema colocando a solução recomendada no ViewController.
Meu Problema: Auto Adjust definido como true por padrão causando uma diferença entre o design do storyboard e o simulador.
Resolvido: Código acima aplicado, desligando o ajuste automático.
Resolvi esse problema ao adicionar esta linha, mas meu problema estava relacionado a um UIView, não ao UIScrollView.
Basta ter em mente que a propriedade AutomaticAdjustsScrollViewInsets funciona somente se algum tipo de exibição de rolagem (exibição de tabela, exibição de coleção) for.
A visão do VC, ou Primeira subvisão desta visão.
Outro sugerido, que ele funciona, mesmo que seja a primeira subvisão, mas existem outras visualizações de rolagem na hierarquia de exibição.
EDITAR (extensão DIY)
Se você quiser um comportamento semelhante mesmo que não possa cumprir essas condições (por exemplo, você tem uma imagem de fundo abaixo da visualização de rolagem), você pode ajustar manualmente as inserções de exibição de rolagem. Mas, por favor, não configurá-lo como constante, como 44 ou 64 ou mesmo 20 como muitos sugerem em torno de SO. Você não pode conhecer o tamanho de todos. Pode haver notificação de incall / gps / audio, a barra de navegação não precisa estar sempre 44 pts, etc.
Eu acho que a melhor solução é usar o comprimento layoutGuide em didLayoutSubviews:
Você pode usar o guia bottomLayout da mesma maneira.
O que é edgeForExtendedLayout: para?
Dentro de um dos códigos de exemplo da WWDC 14, encontrei a seguinte linha no init: na subclasse de UICollectionViewController:
Quando eu comentei, não mudou nada. Qual foi a razão para colocá-lo lá? Para que é realmente?
Melhor Como:
'edgeForExtendedLayout' é usado para especificar quais bordas de uma vista devem ser estendidas, independentemente da translucidez da barra.
Pode ser que você esteja usando isso como um controlador de visualização que não está incorporado em nenhum outro controlador de visualização ou é um controlador de vista de raiz. Você pode encaminhá-lo na documentação oficial da Apple aqui.
NS_ENUM como propriedade no protocolo.
Você precisa sintetizar a propriedade: implementação Aplicação sintetizar applicationState = _ applicationState; encerre ou declare novamente a propriedade: interface Aplicação: NSObject & lt; ApplicationProtocol & gt; propriedade (não-atômica) ApplicationState applicationState; fim .
IOS - Ajuste a altura da célula com base no conteúdo.
Se usar AutoLayout, use este código. Você tenta configurar as propriedades UITableView estimadasHeight. - (void) viewWillAppear: (BOOL) animado Outro uso sensato este Método de Delegado UITableView - (CGFloat) tableView: (UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath.
Como desenhar cada um dos vértices de uma malha como um círculo.
Você pode fazê-lo usando shaders de geometria para criar geometria de billboard de cada vértice na GPU. Você pode então criar os círculos como geometria, ou criar quads e usar uma textura de círculo para desenhá-los (eu recomendo o mais tarde). Mas os shaders de geometria ainda não são amplamente suportados.
animando uma visão em cima da uitableview.
Em initializeSettingsView (), adicione nibView. setTranslatesAutoresizingMaskIntoConstraints (falso). E, em seguida, em viewDidload, adicione a restrição hight às configuraçõesView constra. append (NSLayoutConstraint (item: settingsView, attribute:.Height, relatedBy:.Equal, toItem: nil, atributo:.NotAnAttribute, multiplicador: 1.0, constante: 90.0)) E você não precisa definir a posição de settingsView, uma vez que será layout na posição certa com base em.
Diferença entre stringByAppendingString e appendString em ios.
appendString: é de NSMutableString, stringByAppendingString: é de NSString. O primeiro muda a NSMutableString existente. Adiciona ao final do receptor os caracteres de uma string determinada. O segundo retorna um novo NSString que é uma concatenação do receptor e do parâmetro. Retorna uma nova string feita.
iOS: o que é o retorno de chamada quando tocado no espaço vazio entre o teclado e a barra de busca para descartar o teclado quando a barra de pesquisa está ativa.
Como sobre - searchBarTextDidEndEditing: no UISearchBarDelegate?
MFMessageComposeViewControllerDelegate não está sendo chamado.
Está falhando porque o objeto do manipulador está sendo liberado e desalocado logo após a chamada para handler. sendMessage () e, em seguida, um retorno de chamada do delegado é tentado nesse objeto agora desalinhado quando você tenta enviar ou acertar cancelar. O objeto está sendo liberado e desalinhado porque nada está mantendo uma referência forte.
Como obter diferença de tempo com base em GMT on Swift.
Acho que seu problema é que você está usando um calendário com um fuso horário não definido. Seu cálculo de adicionar 60 * 60 * 24 * 2 à hora atual não é responsável pelos dois dias em que alguns fusos horários mudam para o horário de verão. Esses dias são 23 e 25 horas de duração.
Personagens e Cordas em Swift.
Quando um tipo não é especificado, Swift criará uma instância String fora de um literal de cadeia ao criar uma variável ou constante, independentemente do comprimento. Como as Strings são tão prevalentes nos métodos Swift e Cocoa / Foundation, você deve apenas usar isso a menos que você tenha uma necessidade específica de um personagem, caso contrário.
O remetente UITapGestureRecognizer é o gesto, não o objeto ui.
Você pode obter uma referência à visualização em que o gesto é adicionado através da sua propriedade view. Neste caso, você está adicionando o botão para que a propriedade view o retorne no botão. Deixe o botão = sender. view como? UIButton.
Transferir um projeto Xcode para outro computador com todos os arquivos / frameworks.
Tente transferir tudo, desde plists até o storyboard. Eu fiz isso com um amigo meu e só levou cerca de 20 minutos para o código construir e executar com sucesso em seu próprio laptop. o maior problema será a transferência dos arquivos que o Xcode irá.
Eu tenho que usar esses dois métodos?
Não, você não precisa usar os dois. Ou você vai com a técnica reloadCell ou atualizações de celular por beginUpdate e endUpdate. Quando você está recarregando uma determinada linha, o sistema interno de exibição de tabela cria 2 células e, em seguida, combina com a nova. Você pode remover o beginUpdates e endUpdates e.
UITabBarViewController não gira - iOS.
O Cursor não atualiza no NSTextField conforme ele automatizado ao redimensionar o NSWindow anexando.
Pergunta interessante, nunca apliquei auto-layout para um campo de texto, então fiquei curioso. Minha solução era ouvir o método NSWindowDelegate, - windowDidResize. Com isso, eu verificaria se o campo de texto era o primeiro respondedor. Se fosse, eu configurá-lo para ser o primeiro respondente.
ios8 A análise do fuso horário mudou?
Definir dataStyle ou timeStyle irá substituir qualquer dataFormat personalizado que você definiu. Sua string de data não está de acordo com NSDateFormatterShortStyle, e é por isso que você está ficando nulo ao tentar converter cadeias de caracteres em datas. Além disso, de acordo com a Norma Técnica Unicode # 35, revisão 31, o especificador de fuso horário de.
Definir cor CFAttributedStringRef.
Com base nos comentários sobre a questão, você mencionou que as palavras nunca mudarão. Você poderia potencialmente criar um monte de declarações if / else verificando todas as palavras selecionadas contra cada palavra em uma matriz. Eu coloquei isso como uma alternativa mais eficiente e espero que funcione.
Escalando tudo para cima e para baixo para diferentes dispositivos no UIStoryboard.
Você pode fazê-lo usando a propriedade Ratio de aspecto de AutoLayout. Você pode seguir este tutorial. Dá uma explicação muito boa sobre como dimensionar tudo usando a relação de aspecto correção. simblestudios / blog / development / percentage-width-in-autolayout. html.
Como posso mostrar SOMENTE a data (e não a hora) usando NSDateFormatter?
var dateFormatter = NSDateFormatter () dateFormatter. dateFormat = "yyyy-MM-dd" dateFormatter. locale = NSLocale (localeIdentifier: "en_US") let d = NSDate () let s = dateFormatter. stringFromDate (d).
O aplicativo trava quando eu começar a digitar uiseachbar na uitableview.
Parece que o Predicado está incorreto Experimente: NSPredicate * resultPredicate = [NSPredicate predicateWithFormat: "SELF. fullName contém [c]%", searchText]; .
Twilio Client Python não está funcionando no navegador IOS.
O evangelista do desenvolvimento de Twilio aqui. O Twilio Client usa o WebRTC e volta ao Flash para tornar os navegadores da web nos telefones. Infelizmente, o Safari no iOS não suporta WebRTC nem Flash, então o Twilio Client não pode funcionar em qualquer navegador no iOS. É possível criar um aplicativo iOS para usar.
Como posso corrigir a falha quando toque para selecionar uma linha depois de deslocar a vista de tabela?
Como você está usando células reutilizáveis quando você tenta selecionar uma célula que não está mais na tela, o aplicativo falhará quando a célula não existir na memória, tente isso: se let LastCell = self. diceFaceTable. cellForRowAtIndexPath (lastIndexPath) como ! TableViewCell // atualiza os dados.
Células de tabela extra quando UITableViewController é incorporado em um recipiente em um UIViewController.
Você só precisa adicionar isso ao seu código em viewDidLoad. self. tableView. tableFooterView = [[UIView alloc] initWithFrame: CGRectZero]; EDIT: desculpe, eu estava escrito em objetivo - c aqui está em swift. self. tableView. tableFooterView = UIView (frame: CGRectZero) O tableview exibirá o que parece ser linhas em branco adicionais para preencher os limites se não houver.
Obtendo o vídeo do Catálogo de ativos usando recursos on Demand.
Eu acho que não é possível usar o Catálogo de recursos para coisas de vídeo, é simplificar o gerenciamento de imagens. Documentação da Apple Use os catálogos de recursos para simplificar o gerenciamento de imagens que são usadas pelo seu aplicativo como parte de sua interface de usuário. Um catálogo de ativos pode incluir: conjuntos de imagens: usados para a maioria dos tipos.
Método de chamada após solicitação assíncrona obj-c.
Você precisará "lembrar" o qual UIViewController chama o objeto. Isso pode ser feito, por exemplo, com uma propriedade. in. h property (nonatomic) UIViewController * viewController; no seu arquivo. m sintetizar viewController; Antes de chamar o método, defina a propriedade com anObject. viewController = self; Então, você poderá chamar [viewController finishedPost: self]; dentro.
Após uma inserção no UITableView: custom a célula.
Você precisa usar o UITextField em vez do UILabel. Quando você insere uma nova célula, defina a propriedade habilitada deste UITextField como verdadeira. Ao carregar todas as outras células, lembre-se de configurá-lo como falso para desabilitar a edição (a mesma célula pode ser usada em mais de um lugar).
É possível atualizar continuamente o texto UILabel como usuário inserir o valor em UITextField no iOS.
Você pode registrar seu evento textField for value change: [textField addTarget: self action: selector (textFieldDidChange) forControlEvents: UIControlEventEditingChanged]; e na função textFieldDidChange, atualize seu rótulo: - (void) textFieldDidChange A função shouldChangeCharactersInRange é necessária mais para tomar as decisões de permitir a próxima alteração ou não.
É possível obter um ID exclusivo de iCloud no cacau?
Sim, isso é possível usando CloudKit. Você precisará de um CKContainer, e você pedirá que ele vá buscar a identificação do registro do usuário. Essa identificação de registro é única para seus aplicativos, mas também é estável para esse usuário, isso significa que a mesma conta do iCloud terá a mesma ID de registro, independentemente de qual.
Substitua UITabBarController Icon Selection.
UITabBarControllerDelegate tem um método de delegado - tabBarController: shouldSelectViewController :, basta implementá-lo e verificar se o usuário está logado ou não. por exemplo. - (BOOL) tabBarController: (UITabBarController *) tabBarController shouldSelectViewController: (UIViewController *) viewController else> Você também pode verificar qual controlador de visualização tem.
Inesperadamente encontrado nulo ao desembrulhar um valor opcional - Plist.
Parece que não há erro no seu código, Verifique se as matrizes em plist têm a mesma denominação que no seu código podem confundir algo com as chaves. Você pode verificá-lo clicando com o botão direito do mouse em plist e Abrir-como, em seguida, escolha o código-fonte Como: objectForKey ("nome") chamado & lt; key & gt; name & lt; / key & gt; objectForKey ("imagem") chamado & lt; key & gt; imagem & lt; / key & gt ;.
Como criar UITableViewCells com conteúdo complexo para manter a rolagem fluente.
O que você está tentando fazer é, inevitavelmente, colidir com alguns problemas sérios de desempenho em um caso ou outro. Armazenar todas as células (e seus dados na memória) usará rapidamente a memória disponível do seu aplicativo. Por outro lado, o desbaste e o recarregamento produzirão atrasos em alguns dispositivos como.
iOS 8 Swift CS193P Calculadora Bug Switch Operation.
Seu código parece ser bom, parece que você acidentalmente colocou um ponto de interrupção em seu código, veja aquela flecha de aparência azul à esquerda da linha com destaque verde? Siga um destes procedimentos: vá em frente e clique com o botão direito do mouse e clique em Excluir ponto de interrupção Arraste e solte esse ponto de interrupção em seu controlador de exibição.
SpriteKit colisão ângulo de linha e círculo é estranho.
A bola é refletida simetricamente em seu ângulo de abordagem assumindo que é uma colisão completamente elástica. Isso significa que, para obter o comportamento que você procura, a bola precisaria se aproximar exatamente de uma linha do meio do ponto para o próximo sem perda de energia. O mecanismo de física do Sprite Kit será.
Qual é a melhor prática adicionar uma visão de fundo de vídeo?
Em primeiro lugar, você tem duas opções principais: use um imageView com um GIF ou use um vídeo para o plano de fundo com AVPlayer ou MPMoviePlayerController. Você pode encontrar muitos exemplos para ambas as maneiras, aqui estão alguns: use um GIF para capa de fundo de fundo legal iOS Em resposta ao seu.
NSString para NSDate não funciona.
Você deve definir o formato da data como a string NSString * myDate = "06/18/2015 8:26:17 AM"; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat: "MM / dd / aaaah: mm: ss a"]; NSDate * date = [dateFormatter dateFromString: myDate]; // Defina novo formato de data conforme desejado [dateFormatter setDateFormat: "dd. MM. HH: mm"]; [dateFormatter setLocale: [NSLocale localeWithLocaleIdentifier: "en_US"]]; NSLog ("%", [dateFormatter stringFromDate: data]); .
Adicionando imagem e título tanto para UIsegmentControl IOS.
A documentação oficial para - setImage: forSegmentAtIndex: diz que um segmento só pode ter uma imagem ou um título; não pode ter ambos. Não há imagem padrão. Então, não, não há como fazer o que você quer usando as propriedades da imagem e do título. No entanto, existem algumas opções para realizar.
tente recuperar visualizações a partir de células personalizadas.
viewWithTag: é uma maneira muito frágil de obter uma referência às visualizações e não é recomendado. Mas o que eu acho que está acontecendo é que você precisa chamar viewWithTag: em cell. contentView em vez da própria célula. Eu recomendaria a criação de IBOutlets adequados para manter sua imagem e rótulo.
Erro de compilação depois de eu localizar Info. plist.
Transforme essas alterações, adicione um arquivo InfoPlist. strings ao seu projeto, localize-o e adicione as chaves necessárias a ele. Por exemplo: "CFBundleDisplayName" = "Nome da exibição do aplicativo"; "CFBundleName" = "Nome do pacote do aplicativo"; .
Implementando anúncios Applovin com Swift & SpriteKit.
Você provavelmente precisará habilitar o "Modo Teste" para o seu aplicativo no painel do AppLovin para forçar anúncios de teste a serem exibidos para sua área. Por favor, envie qualquer pergunta para [& # 160; protected] para assistência adicional.
Obter através da App Store Leia esta publicação em nosso aplicativo!
Explicando a diferença entre automaticAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars, edgesForExtendedLayout no iOS7.
Eu tenho lido muito sobre a transição do IOS7 UI.
Não consigo obter o que estas três propriedades automaticamenteAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars, edgesForExtendedLayout ??
Por exemplo, estou tentando fazer meus controladores de exibição começar abaixo da barra de status, mas não consigo alcançá-lo.
Começando no iOS7, os controladores de exibição usam o layout de tela inteira por padrão. Ao mesmo tempo, você tem mais controle sobre como ele expõe seus pontos de vista, e isso é feito com essas propriedades:
Basicamente, com esta propriedade, você define quais lados da sua visão podem ser estendidos para cobrir toda a tela. Imagine que você empurre um UIViewController para um UINavigationController. Quando a exibição desse controlador de visualização é estabelecida, ele iniciará onde a barra de navegação termina, mas essa propriedade irá definir quais lados da vista (superior, esquerda, inferior, direita) podem ser estendidos para preencher a tela inteira.
Vamos vê-lo com um exemplo:
Aqui você não está configurando o valor de edgesForExtendedLayout, portanto, o valor padrão é tomado (UIRectEdgeAll), então a exibição amplia seu layout para preencher toda a tela.
Este é o resultado:
Como você pode ver, o fundo vermelho se estende por trás da barra de navegação e da barra de status.
Agora, você vai definir esse valor para UIRectEdgeNone, então você está dizendo ao controlador de exibição para não estender a exibição para cobrir a tela:
Essa propriedade é usada quando sua exibição é UIScrollView ou similar, como um UITableView. Você quer que sua mesa comece onde a barra de navegação termina, porque você não verá todo o conteúdo se não, mas ao mesmo tempo você deseja que sua mesa cubra toda a tela quando se desloca. Nesse caso, a definição de bordasForExtendedLayout para Nenhum não funcionará porque sua tabela começará a rolar onde a barra de navegação termina e não vai atrasá-la.
Aqui é onde esta propriedade é útil, se você deixar o controlador de exibição ajustar automaticamente as inserções (configurando esta propriedade para SIM, também o valor padrão), ele irá adicionar inserções no topo da tabela, então a tabela começará onde a navegação A barra termina, mas o pergaminho cobrirá toda a tela.
É quando é definido como NÃO:
E SIM (por padrão):
Em ambos os casos, a tabela se desliza para trás da barra de navegação, mas no segundo caso (SIM), ele irá começar por baixo da barra de navegação.
Esse valor é apenas uma adição aos anteriores. Por padrão, esse parâmetro é definido como NO. Se a barra de status for opaca, as visualizações não serão estendidas para incluir a barra de status, mesmo se você estender sua visão para cobri-la (edgeForExtendedLayout para UIRectEdgeAll).
Se você definir o valor como SIM, isso permitirá que a visão vá novamente debaixo da barra de status.
Se algo não estiver claro, escreva um comentário e vou responder.
Como o iOS sabe o que o UIScrollView usa?
O iOS agarra a primeira sub-visualização na visão do ViewController, a do índice 0, e se é uma subclasse do UIScrollView, então aplica as propriedades explicadas a ela.
Claro, isso significa que o UITableViewController funciona por padrão (uma vez que o UITableView é a primeira visualização).
Não tenho certeza se você está usando storyboards, mas se você for, para fazer seus controladores de exibição começarem abaixo da barra de status (e acima da barra inferior):
Selecione o controlador de visualização no IB, no inspetor de atributos, desmarque 'Extendir bordas - Em barras superiores' e 'Ampliar bordas - em barras inferiores'.
Estou usando storyboards e usando o conselho acima, no entanto, não sabia exatamente como implementá-lo. Abaixo está um pequeno exemplo no modo como ele esclareceu o problema colocando a solução recomendada no ViewController.
Meu Problema: Auto Adjust definido como true por padrão causando uma diferença entre o design do storyboard e o simulador.
Resolvido: Código acima aplicado, desligando o ajuste automático.
Resolvi esse problema ao adicionar esta linha, mas meu problema estava relacionado a um UIView, não ao UIScrollView.
Basta ter em mente que a propriedade AutomaticAdjustsScrollViewInsets funciona somente se algum tipo de exibição de rolagem (exibição de tabela, exibição de coleção) for.
A visão do VC, ou Primeira subvisão desta visão.
Outro sugerido, que ele funciona, mesmo que seja a primeira subvisão, mas existem outras visualizações de rolagem na hierarquia de exibição.
EDITAR (extensão DIY)
Se você quiser um comportamento semelhante mesmo que não possa cumprir essas condições (por exemplo, você tem uma imagem de fundo abaixo da visualização de rolagem), você pode ajustar manualmente as inserções de exibição de rolagem. Mas, por favor, não configurá-lo como constante, como 44 ou 64 ou mesmo 20 como muitos sugerem em torno de SO. Você não pode conhecer o tamanho de todos. Pode haver notificação de incall / gps / audio, a barra de navegação não precisa estar sempre 44 pts, etc.
Eu acho que a melhor solução é usar o comprimento layoutGuide em didLayoutSubviews:
Você pode usar o guia bottomLayout da mesma maneira.
O que é edgeForExtendedLayout: para?
Dentro de um dos códigos de exemplo da WWDC 14, encontrei a seguinte linha no init: na subclasse de UICollectionViewController:
Quando eu comentei, não mudou nada. Qual foi a razão para colocá-lo lá? Para que é realmente?
Melhor Como:
'edgeForExtendedLayout' é usado para especificar quais bordas de uma vista devem ser estendidas, independentemente da translucidez da barra.
Pode ser que você esteja usando isso como um controlador de visualização que não está incorporado em nenhum outro controlador de visualização ou é um controlador de vista de raiz. Você pode encaminhá-lo na documentação oficial da Apple aqui.
NS_ENUM como propriedade no protocolo.
Você precisa sintetizar a propriedade: implementação Aplicação sintetizar applicationState = _ applicationState; encerre ou declare novamente a propriedade: interface Aplicação: NSObject & lt; ApplicationProtocol & gt; propriedade (não-atômica) ApplicationState applicationState; fim .
IOS - Ajuste a altura da célula com base no conteúdo.
Se usar AutoLayout, use este código. Você tenta configurar as propriedades UITableView estimadasHeight. - (void) viewWillAppear: (BOOL) animado Outro uso sensato este Método de Delegado UITableView - (CGFloat) tableView: (UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath.
Como desenhar cada um dos vértices de uma malha como um círculo.
Você pode fazê-lo usando shaders de geometria para criar geometria de billboard de cada vértice na GPU. Você pode então criar os círculos como geometria, ou criar quads e usar uma textura de círculo para desenhá-los (eu recomendo o mais tarde). Mas os shaders de geometria ainda não são amplamente suportados.
animando uma visão em cima da uitableview.
Em initializeSettingsView (), adicione nibView. setTranslatesAutoresizingMaskIntoConstraints (falso). E, em seguida, em viewDidload, adicione a restrição hight às configuraçõesView constra. append (NSLayoutConstraint (item: settingsView, attribute:.Height, relatedBy:.Equal, toItem: nil, atributo:.NotAnAttribute, multiplicador: 1.0, constante: 90.0)) E você não precisa definir a posição de settingsView, uma vez que será layout na posição certa com base em.
Diferença entre stringByAppendingString e appendString em ios.
appendString: é de NSMutableString, stringByAppendingString: é de NSString. O primeiro muda a NSMutableString existente. Adiciona ao final do receptor os caracteres de uma string determinada. O segundo retorna um novo NSString que é uma concatenação do receptor e do parâmetro. Retorna uma nova string feita.
iOS: o que é o retorno de chamada quando tocado no espaço vazio entre o teclado e a barra de busca para descartar o teclado quando a barra de pesquisa está ativa.
Como sobre - searchBarTextDidEndEditing: no UISearchBarDelegate?
MFMessageComposeViewControllerDelegate não está sendo chamado.
Está falhando porque o objeto do manipulador está sendo liberado e desalocado logo após a chamada para handler. sendMessage () e, em seguida, um retorno de chamada do delegado é tentado nesse objeto agora desalinhado quando você tenta enviar ou acertar cancelar. O objeto está sendo liberado e desalinhado porque nada está mantendo uma referência forte.
Como obter diferença de tempo com base em GMT on Swift.
Acho que seu problema é que você está usando um calendário com um fuso horário não definido. Seu cálculo de adicionar 60 * 60 * 24 * 2 à hora atual não é responsável pelos dois dias em que alguns fusos horários mudam para o horário de verão. Esses dias são 23 e 25 horas de duração.
Personagens e Cordas em Swift.
Quando um tipo não é especificado, Swift criará uma instância String fora de um literal de cadeia ao criar uma variável ou constante, independentemente do comprimento. Como as Strings são tão prevalentes nos métodos Swift e Cocoa / Foundation, você deve apenas usar isso a menos que você tenha uma necessidade específica de um personagem, caso contrário.
O remetente UITapGestureRecognizer é o gesto, não o objeto ui.
Você pode obter uma referência à visualização em que o gesto é adicionado através da sua propriedade view. Neste caso, você está adicionando o botão para que a propriedade view o retorne no botão. Deixe o botão = sender. view como? UIButton.
Transferir um projeto Xcode para outro computador com todos os arquivos / frameworks.
Tente transferir tudo, desde plists até o storyboard. Eu fiz isso com um amigo meu e só levou cerca de 20 minutos para o código construir e executar com sucesso em seu próprio laptop. o maior problema será a transferência dos arquivos que o Xcode irá.
Eu tenho que usar esses dois métodos?
Não, você não precisa usar os dois. Ou você vai com a técnica reloadCell ou atualizações de celular por beginUpdate e endUpdate. Quando você está recarregando uma determinada linha, o sistema interno de exibição de tabela cria 2 células e, em seguida, combina com a nova. Você pode remover o beginUpdates e endUpdates e.
UITabBarViewController não gira - iOS.
O Cursor não atualiza no NSTextField conforme ele automatizado ao redimensionar o NSWindow anexando.
Pergunta interessante, nunca apliquei auto-layout para um campo de texto, então fiquei curioso. Minha solução era ouvir o método NSWindowDelegate, - windowDidResize. Com isso, eu verificaria se o campo de texto era o primeiro respondedor. Se fosse, eu configurá-lo para ser o primeiro respondente.
ios8 A análise do fuso horário mudou?
Definir dataStyle ou timeStyle irá substituir qualquer dataFormat personalizado que você definiu. Sua string de data não está de acordo com NSDateFormatterShortStyle, e é por isso que você está ficando nulo ao tentar converter cadeias de caracteres em datas. Além disso, de acordo com a Norma Técnica Unicode # 35, revisão 31, o especificador de fuso horário de.
Definir cor CFAttributedStringRef.
Com base nos comentários sobre a questão, você mencionou que as palavras nunca mudarão. Você poderia potencialmente criar um monte de declarações if / else verificando todas as palavras selecionadas contra cada palavra em uma matriz. Eu coloquei isso como uma alternativa mais eficiente e espero que funcione.
Escalando tudo para cima e para baixo para diferentes dispositivos no UIStoryboard.
Você pode fazê-lo usando a propriedade Ratio de aspecto de AutoLayout. Você pode seguir este tutorial. Dá uma explicação muito boa sobre como dimensionar tudo usando a relação de aspecto correção. simblestudios / blog / development / percentage-width-in-autolayout. html.
Como posso mostrar SOMENTE a data (e não a hora) usando NSDateFormatter?
var dateFormatter = NSDateFormatter () dateFormatter. dateFormat = "yyyy-MM-dd" dateFormatter. locale = NSLocale (localeIdentifier: "en_US") let d = NSDate () let s = dateFormatter. stringFromDate (d).
O aplicativo trava quando eu começar a digitar uiseachbar na uitableview.
Parece que o Predicado está incorreto Experimente: NSPredicate * resultPredicate = [NSPredicate predicateWithFormat: "SELF. fullName contém [c]%", searchText]; .
Twilio Client Python não está funcionando no navegador IOS.
O evangelista do desenvolvimento de Twilio aqui. O Twilio Client usa o WebRTC e volta ao Flash para tornar os navegadores da web nos telefones. Infelizmente, o Safari no iOS não suporta WebRTC nem Flash, então o Twilio Client não pode funcionar em qualquer navegador no iOS. É possível criar um aplicativo iOS para usar.
Como posso corrigir a falha quando toque para selecionar uma linha depois de deslocar a vista de tabela?
Como você está usando células reutilizáveis quando você tenta selecionar uma célula que não está mais na tela, o aplicativo falhará quando a célula não existir na memória, tente isso: se let LastCell = self. diceFaceTable. cellForRowAtIndexPath (lastIndexPath) como ! TableViewCell // atualiza os dados.
Células de tabela extra quando UITableViewController é incorporado em um recipiente em um UIViewController.
Você só precisa adicionar isso ao seu código em viewDidLoad. self. tableView. tableFooterView = [[UIView alloc] initWithFrame: CGRectZero]; EDIT: desculpe, eu estava escrito em objetivo - c aqui está em swift. self. tableView. tableFooterView = UIView (frame: CGRectZero) O tableview exibirá o que parece ser linhas em branco adicionais para preencher os limites se não houver.
Obtendo o vídeo do Catálogo de ativos usando recursos on Demand.
Eu acho que não é possível usar o Catálogo de recursos para coisas de vídeo, é simplificar o gerenciamento de imagens. Documentação da Apple Use os catálogos de recursos para simplificar o gerenciamento de imagens que são usadas pelo seu aplicativo como parte de sua interface de usuário. Um catálogo de ativos pode incluir: conjuntos de imagens: usados para a maioria dos tipos.
Método de chamada após solicitação assíncrona obj-c.
Você precisará "lembrar" o qual UIViewController chama o objeto. Isso pode ser feito, por exemplo, com uma propriedade. in. h property (nonatomic) UIViewController * viewController; no seu arquivo. m sintetizar viewController; Antes de chamar o método, defina a propriedade com anObject. viewController = self; Então, você poderá chamar [viewController finishedPost: self]; dentro.
Após uma inserção no UITableView: custom a célula.
Você precisa usar o UITextField em vez do UILabel. Quando você insere uma nova célula, defina a propriedade habilitada deste UITextField como verdadeira. Ao carregar todas as outras células, lembre-se de configurá-lo como falso para desabilitar a edição (a mesma célula pode ser usada em mais de um lugar).
É possível atualizar continuamente o texto UILabel como usuário inserir o valor em UITextField no iOS.
Você pode registrar seu evento textField for value change: [textField addTarget: self action: selector (textFieldDidChange) forControlEvents: UIControlEventEditingChanged]; e na função textFieldDidChange, atualize seu rótulo: - (void) textFieldDidChange A função shouldChangeCharactersInRange é necessária mais para tomar as decisões de permitir a próxima alteração ou não.
É possível obter um ID exclusivo de iCloud no cacau?
Sim, isso é possível usando CloudKit. Você precisará de um CKContainer, e você pedirá que ele vá buscar a identificação do registro do usuário. Essa identificação de registro é única para seus aplicativos, mas também é estável para esse usuário, isso significa que a mesma conta do iCloud terá a mesma ID de registro, independentemente de qual.
Substitua UITabBarController Icon Selection.
UITabBarControllerDelegate tem um método de delegado - tabBarController: shouldSelectViewController :, basta implementá-lo e verificar se o usuário está logado ou não. por exemplo. - (BOOL) tabBarController: (UITabBarController *) tabBarController shouldSelectViewController: (UIViewController *) viewController else> Você também pode verificar qual controlador de visualização tem.
Inesperadamente encontrado nulo ao desembrulhar um valor opcional - Plist.
Parece que não há erro no seu código, Verifique se as matrizes em plist têm a mesma denominação que no seu código podem confundir algo com as chaves. Você pode verificá-lo clicando com o botão direito do mouse em plist e Abrir-como, em seguida, escolha o código-fonte Como: objectForKey ("nome") chamado & lt; key & gt; name & lt; / key & gt; objectForKey ("imagem") chamado & lt; key & gt; imagem & lt; / key & gt ;.
Como criar UITableViewCells com conteúdo complexo para manter a rolagem fluente.
O que você está tentando fazer é, inevitavelmente, colidir com alguns problemas sérios de desempenho em um caso ou outro. Armazenar todas as células (e seus dados na memória) usará rapidamente a memória disponível do seu aplicativo. Por outro lado, o desbaste e o recarregamento produzirão atrasos em alguns dispositivos como.
iOS 8 Swift CS193P Calculadora Bug Switch Operation.
Seu código parece ser bom, parece que você acidentalmente colocou um ponto de interrupção em seu código, veja aquela flecha de aparência azul à esquerda da linha com destaque verde? Siga um destes procedimentos: vá em frente e clique com o botão direito do mouse e clique em Excluir ponto de interrupção Arraste e solte esse ponto de interrupção em seu controlador de exibição.
SpriteKit colisão ângulo de linha e círculo é estranho.
A bola é refletida simetricamente em seu ângulo de abordagem assumindo que é uma colisão completamente elástica. Isso significa que, para obter o comportamento que você procura, a bola precisaria se aproximar exatamente de uma linha do meio do ponto para o próximo sem perda de energia. O mecanismo de física do Sprite Kit será.
Qual é a melhor prática adicionar uma visão de fundo de vídeo?
Em primeiro lugar, você tem duas opções principais: use um imageView com um GIF ou use um vídeo para o plano de fundo com AVPlayer ou MPMoviePlayerController. Você pode encontrar muitos exemplos para ambas as maneiras, aqui estão alguns: use um GIF para capa de fundo de fundo legal iOS Em resposta ao seu.
NSString para NSDate não funciona.
Você deve definir o formato da data como a string NSString * myDate = "06/18/2015 8:26:17 AM"; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat: "MM / dd / aaaah: mm: ss a"]; NSDate * date = [dateFormatter dateFromString: myDate]; // Defina novo formato de data conforme desejado [dateFormatter setDateFormat: "dd. MM. HH: mm"]; [dateFormatter setLocale: [NSLocale localeWithLocaleIdentifier: "en_US"]]; NSLog ("%", [dateFormatter stringFromDate: data]); .
Adicionando imagem e título tanto para UIsegmentControl IOS.
A documentação oficial para - setImage: forSegmentAtIndex: diz que um segmento só pode ter uma imagem ou um título; não pode ter ambos. Não há imagem padrão. Então, não, não há como fazer o que você quer usando as propriedades da imagem e do título. No entanto, existem algumas opções para realizar.
tente recuperar visualizações a partir de células personalizadas.
viewWithTag: é uma maneira muito frágil de obter uma referência às visualizações e não é recomendado. Mas o que eu acho que está acontecendo é que você precisa chamar viewWithTag: em cell. contentView em vez da própria célula. Eu recomendaria a criação de IBOutlets adequados para manter sua imagem e rótulo.
Erro de compilação depois de eu localizar Info. plist.
Transforme essas alterações, adicione um arquivo InfoPlist. strings ao seu projeto, localize-o e adicione as chaves necessárias a ele. Por exemplo: "CFBundleDisplayName" = "Nome da exibição do aplicativo"; "CFBundleName" = "Nome do pacote do aplicativo"; .
Implementando anúncios Applovin com Swift & SpriteKit.
Você provavelmente precisará habilitar o "Modo Teste" para o seu aplicativo no painel do AppLovin para forçar anúncios de teste a serem exibidos para sua área. Por favor, envie qualquer pergunta para [& # 160; protected] para assistência adicional.
No comments:
Post a Comment