Arquivo Fevereiro, 2010

iPhone: Elimine o efeito de sombra ao rolar um UIWebView

Neste último período, trabalhei em três aplicações para o iPhone da Apple, praticamente em simultâneo. Dois já foram aprovados pela Apple e estão localizados na App Store: primeiraoperação e iMakeLove .

TheFirst iMakeLove

Em ambas as aplicações têm adotado o uso de um objeto UIWebView para mostrar as instruções.
O objeto UIWebView ilevato foi realmente confortáveis ​​neste caso. Isso me permitiu ver rapidamente e um belo texto, imagens e acompanhado, se qualquer outra coisa é exibido em uma página Web (Flash no iPhone não incluído).

TheFirst

O objeto UIWebView é realmente versátil e precisa de configurações muito poucos a ser utilizado. O único defeito é a presença de uma sombra misteriosa que aparece quando você faz um livro da área de controle está na parte inferior do que no topo:

UIWebView Shadow

Após várias pesquisas, percebi que esse comportamento depende do SDK, especialmente as últimas atualizações. E a Apple não divulgou nenhuma declaração oficial sobre como removê-lo, pelo contrário, ele rejeitou como código não é permitido uma série de hacks que fazem uso de funções sensíveis, ou documentar. Eventualmente eu desisti, tanto em termos de tempo, e porque as soluções pareciam todos fora do caixa da Apple.
Felizmente eu tenho a solução, espero base bastante regular, o que parece resolver o problema (graças a Adolfo ):

1
2
3
4
5
6
/ / WebView é o controle UIWebView
[ webView.subviews objectAtIndex : 0 ] ; id [objectAtIndex webView.subviews: 0] = scroller;

UIView * subView in [ scroller subviews ] ) for (UIView * subexibição em [scroller subviews])
subView class ] description ] isEqualToString : @ "UIImageView" ] ) if ([[[subexibição classe] description] isEqualToString: @ "UIImageView"])
; subView.hidden = YES;

Como apontado por Adolfo , porém este é um hack que pode parar de trabalhar com versões futuras do SDK.

Continuação ...

Como localizar as imagens e exibições no Interface Builder

Depois de explicar como localizar nossas cordas no Xcode , é fácil ver agora como - através da aplicação da mesma técnica - para localizar e visualizar as imagens / interfaces criadas com o Interface Builder.

Localizar recursos gráficos

O processo, como mencionado, é o mesmo, se temos uma imagem já está incluído em nossos recursos, ou inserir um novo, e nós queremos "localizar" - isto é, para gerenciar duas ou mais imagens com base nos idiomas suportados - basta clicar no botão imagem à direita ( Adium.png neste exemplo) e selecione Get Info:

Criar arquivo Localizable clicamos no canto inferior esquerdo.

Nós clique em Adicionar e insira Localização Italian :

A fim de obter:

esattamente come accadeva con il testo: Nossa imagem é movido (fisicamente, uma das raras vezes quando isso acontece nell'alberatura Xcode é refletida no sistema de arquivos) em pastas virtuais English.lproj e Italian.lproj exatamente como aconteceu com o texto:

contiene una stessa versione dell'immagine. Neste ponto, cada uma das pastas English.lproj e Italian.lproj contém a mesma versão da imagem. Esta imagem é manipulada na Interface Builder, onde poderemos ver - por padrão - a versão em Inglês.
Neste ponto, simplesmente substituir um (ou dois arquivos Adium.png ) para obter uma localização de imagens de "flash".

Localize o XIB arquivos

Mesmo as interfaces construídas com Interface Builder pode ser localizado em sua totalidade, quando for considerado necessário. ) con interfaccia XIB , lo selezioniamo, scegliamo Get Info dal menu contestuale, rendiamo il file localizzabile, aggiungiamo la localizzazione in italiano: O procedimento é idêntico ao realizado com as capacidades gráficas: adicionar um ViewController (por exemplo, infoViewController ) interface XIB, nós selecioná-lo, escolha Obter Informações no menu contextual, dar o localizável arquivo, adicione a localização italiano:

ViewController

Clicando Italiano ou Italiano irá abrir o Interface Builder! ) all'interno della classica cartella Classes . Desta vez, o sistema de arquivos, você vai notar que você criou dois diretórios ( English.lproj e Italian.lproj ) dentro da pasta Classes clássica. Ambos terão seus arquivos infoViewController.xib . O conforto no presente, claramente resolvida no código, e quando vamos instanciar nosso código controlador teremos uma "limpa" como este:

1
2
[ InfoViewController alloc ] ; InfoViewController * info = [InfoViewController alloc];
info.view ] ; [Self.view addSubview: info.view];

Como você pode ver não há nenhum traço de qualquer declaração relativa à localização, totalmente gerenciado pelo sistema. As duas interfaces, é claro, pode ser completamente diferente, como são de fato como dois arquivos separados XIB.

Continuação ...

Como criar o seu próprio protocolo com a delegada

Mesmo no tutorial mais simples que você pode encontrar o uso de protocolos. Ele com certeza vai acontecer a muitos em seu controlador vista a usar um protocolo, introduzindo, ao lado da definição da interface, uma declaração semelhante a:

1
2
3
UIViewController <uiwebviewdelegate> { @ Interface myViewController: UIViewController {<uiwebviewdelegate>
...
}

Continuação ...

WordPress: filtrar o conteúdo dos comentários

Eu tive que corrigir um problema chato em um blog WordPress: usuários deixaram comentários com frases longas. Isso produziu o lançamento do texto, tanto no backend, pior ainda, no frontend. O efeito foi realmente horrível e evitar mão-de moderar todos os comentários única, a única solução era para filtrar - de alguma forma - a saída dos comentários.

Continuação ...

Trecho muito curto: se a saída de um URL em Objective-C

Talvez eu devesse escrever "Muito, muito, trechos curtos", no entanto, é um excelente e conveniente "truque" para mostrar o que eu sou. Executando as "duas" linhas de código mostrado abaixo, você pode obter a saída de qualquer URL e manipulá-lo.

Continuação ...