Back home

SENI #001

SENI #001

SENI adalah kegiatan yang diprakarsai oleh 由左耳朵耗子--陈皓: Kerjakan setidaknya satu pertanyaan algoritma leetcode setiap minggu, baca dan komentari setidaknya satu artikel teknis berbahasa Inggris, pelajari setidaknya satu keterampilan teknis, dan bagikan artikel yang berisi opini dan pemikiran. (Artinya, Algoritma, Review, Tip, dan Share disebut sebagai SENI) dan bertahan setidaknya selama satu tahun.

SENI 001

Ini adalah artikel pertama, dan tulisannya relatif buruk. Saya berharap ini akan menjadi lebih baik dan lebih baik lagi di masa depan.

Pertanyaan algoritma algoritma

pertanyaan algoritma leetcode 344 Reverse String (string terbalik)

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

Pertanyaan ini relatif sederhana dan dapat diterapkan sebagai berikut:

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

Hal ini juga dapat diimplementasikan dengan cara lain, seperti tumpukan. Perlu dicatat bahwa menggunakan tumpukan untuk mengimplementasikannya memerlukan ruang memori dua kali lipat.

Ulasan

Artikel berikut berasal dari: https://littlebitesofcocoa.com/280-flowing-text-around-images-with-exclusion-paths;. Ini berbicara tentang bagaimana mencapai efek gambar pembungkus teks, yang cukup praktis dalam pengembangan.

Teks Mengalir di Sekitar Gambar Dengan Jalur Pengecualian (Gunakan metode pengecualianPaths untuk menggabungkan teks di sekitar gambar)

Teks adalah bagian besar dari aplikasi iOS. Hari ini kita akan melihat salah satu cara untuk menyempurnakan teks di aplikasi kita, dengan membiarkannya “mengalir” secara alami di sekitar objek. Mari kita mulai.

Teks adalah bagian penting dari aplikasi iOS. Hari ini kita akan melihat apa yang dapat kita lakukan dengan teks di aplikasi dengan membiarkannya “mengalir” secara alami di sekitar gambar. Mari kita mulai.

Kita akan mulai dengan gambar “sebelum”. Di sini kita punya pengaturan dasar dengan beberapa teks dan gambar di sudut kanan atas. Tidak ada yang terlalu mewah di sini, hanya UITextView dan UIImageView biasa: Kita akan mulai dengan gambar “sebelum”. Di sini kita memiliki tata letak umum dengan beberapa teks dan gambar di sudut kanan atas. Tidak ada yang istimewa di sini, hanya UITextView dan UIImageView biasa:

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” lebar=“50%” tinggi=“50%” />

Ini kelihatannya baik-baik saja. Namun teks kita terlalu sempit. Akan sangat bagus jika kita dapat membuat teks meluas hingga ke seluruh lebar perangkat. Kita akan mengubah tata letak Tampilan Teks sehingga menjadi: Kelihatannya bagus. Namun lebar tampilan teks kita menjadi lebih sempit. Akan sangat bagus jika kita dapat memperluas teks hingga ke seluruh lebar perangkat. Kami akan mengubah tata letak tampilan teks menjadi seperti ini:

<img src=“/img/15330428846540.jpg” lebar=“50%” tinggi=“50%” />

Ya, kami semakin dekat. Sekarang kita hanya perlu cara untuk membuat teks “mengalir” atau “membungkus” gambar kita. Kita akan mulai dengan mendapatkan bingkai tampilan gambar, lalu kita akan membuat jalur darinya:

biarkan imagePath = UIBezierPath(persegi: imageView.frame) Terakhir, kita akan menetapkan jalur baru sebagai salah satu jalur pengecualian dari textContainer Tampilan Teks kita:

textView.textContainer.exclusionPaths = [imagePath]

Ya, kami semakin dekat. Sekarang kita hanya perlu cara untuk membuat teks “mengalir” atau “membungkus” gambar kita. Pertama-tama kita mendapatkan bingkai tampilan gambar, lalu kita akan membuat jalur darinya:

biarkan imagePath = UIBezierPath(persegi:imageView.frame) Terakhir, kami menetapkan jalur baru ke salah satu jalur pengecualian dari textContainer Tampilan Teks:

textView.textContainer.exclusionPaths = [imagePath]

<img src=“/img/15330429892173.jpg” lebar=“50%” tinggi=“50%” />

Sukses! Karena pengecualianPaths adalah Array, kita dapat mengalirkan teks ke sebanyak mungkin bentuk yang kita inginkan! Kesuksesan! Karena pengecualianPaths adalah sebuah array, kita dapat mengalirkan teks di sekitarnya sesuai kebutuhan!

<img src=“/img/15330430319407.jpg” lebar=“50%” tinggi=“50%” />

Demo:https://github.com/danminyi/TextAroundImages

Kiat

Saat menggunakan Xcode, terkadang saya ingin mengubah nilai variabel tertentu saat debugging. Misalnya pada gambar di bawah ini, saya ingin mengubah nilai imageView. Pendekatan umumnya adalah memodifikasi dan menjalankan kembali. Ini terlalu tidak efisien. Selain menggunakan alat pihak ketiga seperti pengungkapan dan injeksi, Anda juga bisa Gunakan metode yang disertakan dengan xcode - breakpoint, seperti yang ditunjukkan pada gambar di bawah, Anda dapat langsung memodifikasi bingkai imageView. Setelah memeriksa Automaticlly di bawah ini, breakpoint tidak akan berhenti ketika Anda mencapainya, dan Anda dapat langsung menjalankannya. Bukankah ini sangat nyaman, terutama saat men-debug fungsi penerusan parameter? Ini sangat nyaman.

Bagikan

Minggu ini saya menonton “Bagaimana Internet Terhubung” (https://book.douban.com/subject/26941639/) Saya belum menyelesaikan bab kedua. Saya harus mengatakan bahwa buku ini sangat cocok untuk pemula jaringan. Saya telah membaca beberapa buku jaringan sebelumnya, tetapi saya belum dapat menyelesaikannya. Mungkin fondasi saya terlalu buruk. Buku ini pertama-tama menjelaskan gambaran keseluruhan jaringan, dan kemudian menjelaskan setiap detailnya. Dari URL yang Anda masukkan di browser hingga respons server, hingga browser yang menampilkan data, setiap langkah prosesnya memiliki penjelasan yang mudah dipahami. Saya juga membaca Illustrated HTTP dan Illustrated TCP/IP sebelumnya, namun saya kurang memahaminya; banyak buku hanya menjelaskan satu hal, seperti orang buta menyentuh gajah, tidak mampu mempertimbangkan situasi secara keseluruhan; atau mereka menjelaskan prinsip secara langsung tanpa menggabungkannya dengan skenario penggunaan sehari-hari, sehingga menyulitkan orang untuk memahaminya. Buku ini dimulai dengan skenario yang paling Anda kenal, dan kemudian membahas prinsip-prinsipnya. Tentunya buku ini ditujukan untuk para pemula jaringan, sehingga banyak poin ilmu yang tidak dapat dijelaskan terlalu dalam, sehingga buku ini hanya cocok untuk pemula. Saya telah melakukan pemrograman soket sebelumnya, tetapi saya tidak pernah memahami proses spesifiknya. Setelah membaca dua bab pertama, saya tiba-tiba merasa tercerahkan. Jika Anda selalu ingin belajar tentang Internet secara mendalam, namun setelah membaca banyak buku, Anda masih merasa belum memulai atau bingung dan belum memiliki konsep jaringan secara keseluruhan, maka buku ini cocok untuk Anda.