Back home

ARTES #001

ARTES #001

ARTS é uma atividade iniciada por 由左耳朵耗子--陈皓: Faça pelo menos uma pergunta sobre o algoritmo leetcode toda semana, leia e comente pelo menos um artigo técnico em inglês, aprenda pelo menos uma habilidade técnica e compartilhe um artigo com opiniões e pensamentos. (Ou seja, Algoritmo, Revisão, Dica e Compartilhamento são chamados de ARTS) e persistem por pelo menos um ano.

ARTES 001

Este é o primeiro artigo e está relativamente mal escrito. Espero que fique cada vez melhor no futuro.

Pergunta sobre algoritmo de algoritmo

Pergunta do algoritmo leetcode 344 String reversa (string reversa)

Write a function that takes a string as input and returns the string reversed.
Example:
Given s = "hello", return "olleh".
请编写一个函数,其功能是将输入的字符串反转过来。
示例:
输入:s = "hello"
返回:"olleh"

Esta questão é relativamente simples e pode ser implementada da seguinte forma:

char* reverseString(char* s) {
    int len=strlen(s);
    int mid=len/2;
    for(int i=0,j=len-1;i<mid,i<j;i++,j--){
        char tmp;
        tmp=s[i];
        s[i]=s[j];
        s[j]=tmp;
    }
    return s;
}

Também pode ser implementado de outras maneiras, como uma pilha. Deve-se notar que usar uma pilha para implementá-la requer o dobro do espaço de memória.

Revisão

O seguinte artigo vem de: https://littlebitesofcocoa.com/280-flowing-text-around-images-with-exclusion-paths;. Ele fala sobre como conseguir o efeito de quebra automática de texto, o que é bastante prático no desenvolvimento.

Fluxo de texto em torno de imagens com caminhos de exclusão (use o método excludePaths para envolver o texto em torno de imagens)

O texto é uma grande parte dos aplicativos iOS. Hoje veremos uma maneira de aprimorar o texto em nossos aplicativos, permitindo que ele “flua” naturalmente em torno dos objetos. Vamos começar.

O texto é uma parte importante dos aplicativos iOS. Hoje veremos o que podemos fazer com o texto em um aplicativo, permitindo que ele “flua” naturalmente em torno de uma imagem. Vamos começar.

Começaremos com uma foto do “antes”. Aqui temos uma configuração básica com algum texto e uma imagem no canto superior direito. Nada muito sofisticado aqui, apenas UITextView e UIImageView normais: Começaremos com as fotos do “antes”. Aqui temos um layout comum com algum texto e uma imagem no canto superior direito. Nada de especial aqui, apenas UITextView e UIImageView normais:

let imageView = UIImageView(image: UIImage(named: "steve"))
let textView = UITextView(frame: .zero)  
textView.text = "Here's to the crazy ones..."

<img src=“/img/15330428668213.jpg” largura=“50%” altura=“50%” />

Isso parece bom. Mas nosso texto é desnecessariamente restrito. Seria ótimo se pudéssemos expandir o texto para toda a largura do dispositivo. Vamos mudar o layout da nossa Visualização de Texto para que assim seja: Parece bom. Mas a largura da nossa exibição de texto fica mais estreita. Seria ótimo se pudéssemos estender o texto por toda a largura do dispositivo. Alteraremos o layout da visualização de texto para ficar assim:

<img src=“/img/15330428846540.jpg” largura=“50%” altura=“50%” />

Bem, estamos nos aproximando. Agora só precisamos de uma maneira de fazer o texto “fluir” ou “envolver” nossa imagem. Começaremos obtendo o quadro da visualização da imagem e depois criaremos um caminho a partir dele:

deixe imagePath = UIBezierPath (rect: imageView.frame) Por fim, definiremos nosso novo caminho como um dos excludePaths do textContainer da nossa Text View:

textView.textContainer.exclusãoPaths = [imagePath]

Bem, estamos nos aproximando. Agora só precisamos de uma maneira de fazer o texto “fluir” ou “envolver” nossa imagem. Primeiro obtemos o quadro da visualização da imagem e depois criamos um caminho a partir dele:

deixe imagePath = UIBezierPath (rect:imageView.frame) Finalmente, definimos o novo caminho para um dos excludePaths do textContainer da Text View:

textView.textContainer.exclusãoPaths = [imagePath]

<img src=“/img/15330429892173.jpg” largura=“50%” altura=“50%” />

Sucesso! Como excludePaths é um Array, podemos fluir o texto em quantas formas quisermos! Sucesso! Como excludePaths é um array, podemos fluir o texto em torno dele conforme necessário!

<img src=“/img/15330430319407.jpg” largura=“50%” altura=“50%” />

Demonstração: https://github.com/danminyi/TextAroundImages

Dica

Ao usar o Xcode, às vezes quero alterar o valor de uma determinada variável durante a depuração. Por exemplo, na imagem abaixo, quero modificar o valor de imageView. A abordagem geral é modificar e executar novamente. Isso é muito ineficiente. Além de usar ferramentas de terceiros, como revelação e injeção, você também pode usar o método que vem com o xcode - ponto de interrupção, conforme mostrado na figura abaixo, você pode modificar diretamente o quadro do imageView. Após verificar Automaticamente abaixo, o ponto de interrupção não irá pausar quando você alcançá-lo e você poderá executá-lo diretamente. Não é muito conveniente, especialmente ao depurar a função de passagem de parâmetros? É tão conveniente.

Compartilhar

Esta semana estou assistindo “Como a Internet está conectada” (https://book.douban.com/subject/26941639/) Ainda não terminei o segundo capítulo. Devo dizer que este livro é realmente adequado para iniciantes em redes. Já li alguns livros da rede antes, mas não consegui terminá-los. Talvez minha base seja muito pobre. Este livro primeiro explica todo o quadro da rede e depois explica cada detalhe. Desde o URL que você insere no navegador até a resposta do servidor, até o navegador que exibe os dados, cada etapa do processo tem uma explicação fácil de entender. Eu também li Illustrated HTTP e Illustrated TCP/IP antes, mas não os entendi muito bem; muitos livros explicavam apenas um ponto, como um cego tocando um elefante, incapaz de considerar a situação geral; ou explicaram diretamente os princípios sem combiná-los com cenários de uso diário, dificultando a compreensão das pessoas. Este livro começa com os cenários com os quais você está mais familiarizado e depois fala sobre os princípios. É claro que este livro é voltado para iniciantes em redes, portanto, muitos pontos de conhecimento não podem ser explicados com muita profundidade, portanto, este livro é adequado apenas para iniciantes. Já fiz programação de soquete antes, mas nunca entendi o processo específico. Depois de ler os dois primeiros capítulos, senti-me subitamente iluminado. Se você sempre quis aprender mais sobre a Internet, mas depois de ler muitos livros, ainda sente que não começou ou está confuso e não tem noção da rede geral, então este livro é adequado para você.